"use strict";(self.webpackChunkfurion=self.webpackChunkfurion||[]).push([[6229],{4683:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>h,contentTitle:()=>d,default:()=>x,frontMatter:()=>a,metadata:()=>o,toc:()=>p});var r=t(5893),s=t(1151),i=t(510),l=t(4866),c=t(5162);const a={id:"http",title:"19. \u8fdc\u7a0b\u8bf7\u6c42",sidebar_label:"19. \u8fdc\u7a0b\u8bf7\u6c42 (HttpClient)"},d=void 0,o={id:"http",title:"19. \u8fdc\u7a0b\u8bf7\u6c42",description:"\ud83d\udcdd \u6a21\u5757\u66f4\u65b0\u65e5\u5fd7",source:"@site/docs/http.mdx",sourceDirName:".",slug:"/http",permalink:"/docs/http",draft:!1,unlisted:!1,editUrl:"https://gitee.com/dotnetchina/Furion/tree/v4/handbook/docs/http.mdx",tags:[],version:"current",lastUpdatedBy:"\u767e\u5c0f\u50e7",lastUpdatedAt:1699432022,formattedLastUpdatedAt:"Nov 8, 2023",frontMatter:{id:"http",title:"19. \u8fdc\u7a0b\u8bf7\u6c42",sidebar_label:"19. \u8fdc\u7a0b\u8bf7\u6c42 (HttpClient)"},sidebar:"docs",previous:{title:"18. \u65e5\u5fd7\u8bb0\u5f55",permalink:"/docs/logging"},next:{title:"20. \u6570\u636e\u52a0\u89e3\u5bc6",permalink:"/docs/encryption"}},h={},p=[{value:"19.1 \u5173\u4e8e\u8fdc\u7a0b\u8bf7\u6c42",id:"191-\u5173\u4e8e\u8fdc\u7a0b\u8bf7\u6c42",level:2},{value:"19.2 \u8fdc\u7a0b\u8bf7\u6c42\u7684\u4f5c\u7528",id:"192-\u8fdc\u7a0b\u8bf7\u6c42\u7684\u4f5c\u7528",level:2},{value:"19.3 \u57fa\u7840\u4f7f\u7528",id:"193-\u57fa\u7840\u4f7f\u7528",level:2},{value:"19.3.1 \u6ce8\u518c\u670d\u52a1",id:"1931-\u6ce8\u518c\u670d\u52a1",level:3},{value:"19.3.2 \u4f7f\u7528\u65b9\u5f0f",id:"1932-\u4f7f\u7528\u65b9\u5f0f",level:3},{value:"19.4 \u5b57\u7b26\u4e32\u65b9\u5f0f\u4f7f\u7528\u793a\u4f8b",id:"194-\u5b57\u7b26\u4e32\u65b9\u5f0f\u4f7f\u7528\u793a\u4f8b",level:2},{value:"19.4.1 \u5185\u7f6e\u8bf7\u6c42\u65b9\u5f0f",id:"1941-\u5185\u7f6e\u8bf7\u6c42\u65b9\u5f0f",level:3},{value:"19.4.2 \u8bbe\u7f6e\u8bf7\u6c42\u5730\u5740",id:"1942-\u8bbe\u7f6e\u8bf7\u6c42\u5730\u5740",level:3},{value:"19.4.3 \u8bbe\u7f6e\u8bf7\u6c42\u65b9\u5f0f",id:"1943-\u8bbe\u7f6e\u8bf7\u6c42\u65b9\u5f0f",level:3},{value:"19.4.4 \u8bbe\u7f6e\u5730\u5740\u6a21\u677f",id:"1944-\u8bbe\u7f6e\u5730\u5740\u6a21\u677f",level:3},{value:"19.4.5 \u8bbe\u7f6e\u8bf7\u6c42\u62a5\u6587\u5934",id:"1945-\u8bbe\u7f6e\u8bf7\u6c42\u62a5\u6587\u5934",level:3},{value:"19.4.6 \u8bbe\u7f6e URL
\u5730\u5740\u53c2\u6570",id:"1946-\u8bbe\u7f6e-url-\u5730\u5740\u53c2\u6570",level:3},{value:"19.4.7 \u8bbe\u7f6e\u8bf7\u6c42\u5ba2\u6237\u7aef",id:"1947-\u8bbe\u7f6e\u8bf7\u6c42\u5ba2\u6237\u7aef",level:3},{value:"19.4.8 \u8bbe\u7f6e Body
\u53c2\u6570",id:"1948-\u8bbe\u7f6e-body-\u53c2\u6570",level:3},{value:"19.4.9 \u8bbe\u7f6e Content-Type
",id:"1949-\u8bbe\u7f6e-content-type",level:3},{value:"19.4.10 \u8bbe\u7f6e\u5185\u5bb9\u7f16\u7801",id:"19410-\u8bbe\u7f6e\u5185\u5bb9\u7f16\u7801",level:3},{value:"19.4.11 \u8bbe\u7f6e JSON
\u5e8f\u5217\u5316\u63d0\u4f9b\u7a0b\u5e8f",id:"19411-\u8bbe\u7f6e-json-\u5e8f\u5217\u5316\u63d0\u4f9b\u7a0b\u5e8f",level:3},{value:"19.4.12 \u542f\u7528 Body
\u53c2\u6570\u9a8c\u8bc1",id:"19412-\u542f\u7528-body-\u53c2\u6570\u9a8c\u8bc1",level:3},{value:"19.4.13 \u8bf7\u6c42\u62e6\u622a",id:"19413-\u8bf7\u6c42\u62e6\u622a",level:3},{value:"19.4.14 HttpClient
\u62e6\u622a",id:"19414-httpclient-\u62e6\u622a",level:3},{value:"19.4.15 \u8bf7\u6c42\u4e4b\u524d\u62e6\u622a",id:"19415-\u8bf7\u6c42\u4e4b\u524d\u62e6\u622a",level:3},{value:"19.4.16 \u6210\u529f\u8bf7\u6c42\u62e6\u622a",id:"19416-\u6210\u529f\u8bf7\u6c42\u62e6\u622a",level:3},{value:"19.4.17 \u8bf7\u6c42\u5f02\u5e38\u62e6\u622a",id:"19417-\u8bf7\u6c42\u5f02\u5e38\u62e6\u622a",level:3},{value:"19.4.18 \u5404\u79cd\u8fd4\u56de\u503c\u5904\u7406",id:"19418-\u5404\u79cd\u8fd4\u56de\u503c\u5904\u7406",level:3},{value:"19.4.19 \u8bbe\u7f6e Byte[]/Stream
\u7c7b\u578b/\u4e0a\u4f20\u6587\u4ef6",id:"19419-\u8bbe\u7f6e-bytestream-\u7c7b\u578b\u4e0a\u4f20\u6587\u4ef6",level:3},{value:"19.4.20 \u8bbe\u7f6e IServiceProvider
",id:"19420-\u8bbe\u7f6e-iserviceprovider",level:3},{value:"19.4.21 \u652f\u6301\u6a21\u677f\u914d\u7f6e",id:"19421-\u652f\u6301\u6a21\u677f\u914d\u7f6e",level:3},{value:"19.4.22 \u91cd\u8bd5\u7b56\u7565",id:"19422-\u91cd\u8bd5\u7b56\u7565",level:3},{value:"19.4.23 \u652f\u6301 GZip
\u538b\u7f29",id:"19423-\u652f\u6301-gzip-\u538b\u7f29",level:3},{value:"19.4.24 \u8bbe\u7f6e Url
\u8f6c\u7801",id:"19424-\u8bbe\u7f6e-url-\u8f6c\u7801",level:3},{value:"19.4.25 \u8bbe\u7f6e HTTP
\u7248\u672c",id:"19425-\u8bbe\u7f6e-http-\u7248\u672c",level:3},{value:"19.4.26 \u4e0b\u8f7d\u8fdc\u7a0b\u6587\u4ef6\u5e76\u4fdd\u5b58",id:"19426-\u4e0b\u8f7d\u8fdc\u7a0b\u6587\u4ef6\u5e76\u4fdd\u5b58",level:3},{value:"19.5 IHttpDispatchProxy
\u4ee3\u7406\u65b9\u5f0f",id:"195-ihttpdispatchproxy-\u4ee3\u7406\u65b9\u5f0f",level:2},{value:"19.5.1 \u652f\u6301\u591a\u79cd\u4ee3\u7406\u65b9\u5f0f",id:"1951-\u652f\u6301\u591a\u79cd\u4ee3\u7406\u65b9\u5f0f",level:3},{value:"19.5.2 \u8bbe\u7f6e\u5730\u5740\u6a21\u677f",id:"1952-\u8bbe\u7f6e\u5730\u5740\u6a21\u677f",level:3},{value:"19.5.3 \u8bbe\u7f6e\u8bf7\u6c42\u62a5\u6587\u5934",id:"1953-\u8bbe\u7f6e\u8bf7\u6c42\u62a5\u6587\u5934",level:3},{value:"19.5.4 \u8bbe\u7f6e URL
\u5730\u5740\u53c2\u6570",id:"1954-\u8bbe\u7f6e-url-\u5730\u5740\u53c2\u6570",level:3},{value:"19.5.5 \u8bbe\u7f6e\u8bf7\u6c42\u5ba2\u6237\u7aef",id:"1955-\u8bbe\u7f6e\u8bf7\u6c42\u5ba2\u6237\u7aef",level:3},{value:"19.5.6 \u8bbe\u7f6e Body
\u53c2\u6570",id:"1956-\u8bbe\u7f6e-body-\u53c2\u6570",level:3},{value:"19.5.7 \u8bbe\u7f6e JSON
\u5e8f\u5217\u5316\u63d0\u4f9b\u7a0b\u5e8f",id:"1957-\u8bbe\u7f6e-json-\u5e8f\u5217\u5316\u63d0\u4f9b\u7a0b\u5e8f",level:3},{value:"19.5.8 \u53c2\u6570\u9a8c\u8bc1",id:"1958-\u53c2\u6570\u9a8c\u8bc1",level:3},{value:"19.5.9 \u8bf7\u6c42\u62e6\u622a",id:"1959-\u8bf7\u6c42\u62e6\u622a",level:3},{value:"19.5.10 HttpClient
\u62e6\u622a",id:"19510-httpclient-\u62e6\u622a",level:3},{value:"19.5.11 \u8bf7\u6c42\u4e4b\u524d\u62e6\u622a",id:"19511-\u8bf7\u6c42\u4e4b\u524d\u62e6\u622a",level:3},{value:"19.5.12 \u6210\u529f\u8bf7\u6c42\u62e6\u622a",id:"19512-\u6210\u529f\u8bf7\u6c42\u62e6\u622a",level:3},{value:"19.5.13 \u8bf7\u6c42\u5f02\u5e38\u62e6\u622a",id:"19513-\u8bf7\u6c42\u5f02\u5e38\u62e6\u622a",level:3},{value:"19.5.14 \u5404\u79cd\u8fd4\u56de\u503c\u5904\u7406",id:"19514-\u5404\u79cd\u8fd4\u56de\u503c\u5904\u7406",level:3},{value:"19.5.15 \u8bbe\u7f6e Byte[]/Stream
\u7c7b\u578b/\u4e0a\u4f20\u6587\u4ef6",id:"19515-\u8bbe\u7f6e-bytestream-\u7c7b\u578b\u4e0a\u4f20\u6587\u4ef6",level:3},{value:"19.5.16 \u652f\u6301\u6a21\u677f\u914d\u7f6e",id:"19516-\u652f\u6301\u6a21\u677f\u914d\u7f6e",level:3},{value:"19.5.17 \u91cd\u8bd5\u7b56\u7565",id:"19517-\u91cd\u8bd5\u7b56\u7565",level:3},{value:"19.5.18 \u652f\u6301 GZip
",id:"19518-\u652f\u6301-gzip",level:3},{value:"19.5.19 \u8bbe\u7f6e Url
\u8f6c\u7801",id:"19519-\u8bbe\u7f6e-url-\u8f6c\u7801",level:3},{value:"19.5.20 \u8bbe\u7f6e HTTP
\u7248\u672c",id:"19520-\u8bbe\u7f6e-http-\u7248\u672c",level:3},{value:"19.6 \u8bf7\u6c42\u5ba2\u6237\u7aef\u914d\u7f6e",id:"196-\u8bf7\u6c42\u5ba2\u6237\u7aef\u914d\u7f6e",level:2},{value:"19.6.1 Startup.cs
\u7edf\u4e00\u914d\u7f6e",id:"1961-startupcs-\u7edf\u4e00\u914d\u7f6e",level:3},{value:"19.6.2 \u914d\u7f6e\u5ba2\u6237\u7aef Timeout
",id:"1962-\u914d\u7f6e\u5ba2\u6237\u7aef-timeout",level:3},{value:"19.6.3 \u914d\u7f6e\u5ba2\u6237\u7aef\u751f\u5b58\u671f",id:"1963-\u914d\u7f6e\u5ba2\u6237\u7aef\u751f\u5b58\u671f",level:3},{value:"19.6.4 \u81ea\u5b9a\u4e49 Client
\u7c7b\u65b9\u5f0f",id:"1964-\u81ea\u5b9a\u4e49-client-\u7c7b\u65b9\u5f0f",level:3},{value:"19.6.5 \u81ea\u5b9a\u4e49 Client
\u7c7b + \u63a5\u53e3\u65b9\u5f0f",id:"1965-\u81ea\u5b9a\u4e49-client-\u7c7b--\u63a5\u53e3\u65b9\u5f0f",level:3},{value:"19.6.6 HttpClient
\u8d85\u65f6\u95ee\u9898",id:"1966-httpclient-\u8d85\u65f6\u95ee\u9898",level:3},{value:"19.7 SSL/https
\u8bc1\u4e66\u914d\u7f6e",id:"197-sslhttps-\u8bc1\u4e66\u914d\u7f6e",level:2},{value:"19.7.1 \u4f7f\u7528\u9ed8\u8ba4 SSL
\u8bc1\u4e66",id:"1971-\u4f7f\u7528\u9ed8\u8ba4-ssl-\u8bc1\u4e66",level:3},{value:"19.7.2 \u5ffd\u7565\u7279\u5b9a\u5ba2\u6237\u7aef SSL
\u8bc1\u4e66\u68c0\u67e5",id:"1972-\u5ffd\u7565\u7279\u5b9a\u5ba2\u6237\u7aef-ssl-\u8bc1\u4e66\u68c0\u67e5",level:3},{value:"19.7.3 \u624b\u52a8\u6307\u5b9a SSL
\u8bc1\u4e66",id:"1973-\u624b\u52a8\u6307\u5b9a-ssl-\u8bc1\u4e66",level:3},{value:"19.7.4 \u5ffd\u7565\u6240\u6709\u5ba2\u6237\u7aef\u8bc1\u4e66\u68c0\u67e5",id:"1974-\u5ffd\u7565\u6240\u6709\u5ba2\u6237\u7aef\u8bc1\u4e66\u68c0\u67e5",level:3},{value:"19.8 \u914d\u7f6e\u5ba2\u6237\u7aef\u8bf7\u6c42\u4ee3\u7406",id:"198-\u914d\u7f6e\u5ba2\u6237\u7aef\u8bf7\u6c42\u4ee3\u7406",level:2},{value:"19.9 \u5173\u4e8e\u8fd4\u56de\u503c\u975e 200
\u65f6\u5ffd\u7565 Http\u72b6\u6001
",id:"199-\u5173\u4e8e\u8fd4\u56de\u503c\u975e-200-\u65f6\u5ffd\u7565-http\u72b6\u6001",level:2},{value:"19.10 \u5173\u4e8e\u540c\u6b65\u8bf7\u6c42",id:"1910-\u5173\u4e8e\u540c\u6b65\u8bf7\u6c42",level:2},{value:"19.11 \u9759\u6001 Default
\u65b9\u5f0f\u6784\u5efa",id:"1911-\u9759\u6001-default-\u65b9\u5f0f\u6784\u5efa",level:2},{value:"19.12 \u5173\u95ed Http
\u8bf7\u6c42\u65e5\u5fd7",id:"1912-\u5173\u95ed-http-\u8bf7\u6c42\u65e5\u5fd7",level:2},{value:"19.13 \u83b7\u53d6 Cookies
",id:"1913-\u83b7\u53d6-cookies",level:2},{value:"19.14 \u5728 WinForm/WPF
\u4e2d\u4f7f\u7528",id:"1914-\u5728-winformwpf-\u4e2d\u4f7f\u7528",level:2},{value:"19.15 \u53cd\u9988\u4e0e\u5efa\u8bae",id:"1915-\u53cd\u9988\u4e0e\u5efa\u8bae",level:2}];function u(e){const n={a:"a",admonition:"admonition",code:"code",del:"del",h2:"h2",h3:"h3",hr:"hr",li:"li",mdxAdmonitionTitle:"mdxAdmonitionTitle",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.a)(),...e.components},{Details:t}=n;return t||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"\ud83d\udcdd \u6a21\u5757\u66f4\u65b0\u65e5\u5fd7"}),(0,r.jsx)("div",{children:(0,r.jsx)("div",{children:(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u65b0\u7279\u6027"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\xa0",(0,r.jsx)(i.Z,{children:"\u65b0\u589e"})," \u8fdc\u7a0b\u8bf7\u6c42 ",(0,r.jsx)(n.code,{children:"[HttpMethod]ToSaveAsync"})," \u4e0b\u8f7d\u8fdc\u7a0b\u6587\u4ef6\u5e76\u4fdd\u5b58\u5230\u78c1\u76d8\u65b9\u6cd5 ",(0,r.jsx)("sup",{children:"4.8.7.32"})," ",(0,r.jsx)("sup",{children:"\u23f1\ufe0f2023.04.02"})," ",(0,r.jsx)(n.a,{href:"https://gitee.com/dotnetchina/Furion/commit/bfd02c1a2ce4229e90fc825fe5657ada59e1892f",children:"bfd02c1"})]}),"\n",(0,r.jsxs)(n.li,{children:["\xa0",(0,r.jsx)(i.Z,{children:"\u65b0\u589e"})," \u8fdc\u7a0b\u8bf7\u6c42\u652f\u6301 ",(0,r.jsx)(n.code,{children:"Content-Type"})," \u4e3a ",(0,r.jsx)(n.code,{children:"text/html"})," \u548c ",(0,r.jsx)(n.code,{children:"text/plain"})," \u5904\u7406 ",(0,r.jsx)("sup",{children:"4.8.7.22"})," ",(0,r.jsx)("sup",{children:"\u23f1\ufe0f2023.03.27"})," ",(0,r.jsx)(n.a,{href:"https://gitee.com/dotnetchina/Furion/issues/I6QMLR",children:"#I6QMLR"})]}),"\n",(0,r.jsxs)(n.li,{children:["\xa0",(0,r.jsx)(i.Z,{children:"\u65b0\u589e"})," \u8fdc\u7a0b\u8bf7\u6c42 ",(0,r.jsx)(n.code,{children:"HttpRequestMessage"})," \u62d3\u5c55\u65b9\u6cd5 ",(0,r.jsx)(n.code,{children:"AppendHeaders"})," ",(0,r.jsx)("sup",{children:"4.8.7.10"})," ",(0,r.jsx)("sup",{children:"\u23f1\ufe0f2023.03.14"})," ",(0,r.jsx)(n.a,{href:"https://gitee.com/dotnetchina/Furion/issues/I6MVHT",children:"#I6MVHT"})]}),"\n",(0,r.jsxs)(n.li,{children:["\xa0",(0,r.jsx)(i.Z,{children:"\u65b0\u589e"})," \u8fdc\u7a0b\u8bf7\u6c42\u914d\u7f6e ",(0,r.jsx)(n.code,{children:"SetHttpVersion(version)"})," \u914d\u7f6e\uff0c\u53ef\u914d\u7f6e ",(0,r.jsx)(n.code,{children:"HTTP"})," \u8bf7\u6c42\u7248\u672c\uff0c\u9ed8\u8ba4\u4e3a ",(0,r.jsx)(n.code,{children:"1.1"})," ",(0,r.jsx)("sup",{children:"4.8.5.8"})," ",(0,r.jsx)("sup",{children:"\u23f1\ufe0f2023.02.06"})," ",(0,r.jsx)(n.a,{href:"https://gitee.com/dotnetchina/Furion/issues/I6D64H",children:"#I6D64H"})]}),"\n",(0,r.jsxs)(n.li,{children:["\xa0",(0,r.jsx)(i.Z,{children:"\u65b0\u589e"})," \u8fdc\u7a0b\u8bf7\u6c42 ",(0,r.jsx)(n.code,{children:"[QueryString]"})," \u7279\u6027\u6dfb\u52a0\u65f6\u95f4\u683c\u5f0f\u5316 ",(0,r.jsx)(n.code,{children:"Format"})," \u5c5e\u6027 ",(0,r.jsx)("sup",{children:"4.8.1.2"})," ",(0,r.jsx)("sup",{children:"\u23f1\ufe0f2022.11.24"})," ",(0,r.jsx)(n.a,{href:"https://gitee.com/dotnetchina/Furion/pulls/670",children:"!670"})]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u95ee\u9898\u4fee\u590d"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\xa0",(0,r.jsx)(i.Z,{children:"\u4fee\u590d"})," \u8fdc\u7a0b\u8bf7\u6c42\u83b7\u53d6\u54cd\u5e94 ",(0,r.jsx)(n.code,{children:"Cookies"})," \u88ab\u622a\u65ad\u95ee\u9898 ",(0,r.jsx)("sup",{children:"4.8.8.54"})," ",(0,r.jsx)("sup",{children:"\u23f1\ufe0f2023.11.08"})," ",(0,r.jsx)(n.a,{href:"https://gitee.com/dotnetchina/Furion/issues/I8EV1Z",children:"#I8EV1Z"})]}),"\n",(0,r.jsxs)(n.li,{children:["\xa0",(0,r.jsx)(i.Z,{children:"\u4fee\u590d"})," \u8fdc\u7a0b\u8bf7\u6c42\u4e0a\u4f20\u6587\u4ef6\u5728\u5176\u4ed6\u7f16\u7a0b\u8bed\u8a00\u83b7\u53d6\u6587\u4ef6\u540d\u5b58\u5728\u53cc\u5f15\u53f7\u95ee\u9898 ",(0,r.jsx)("sup",{children:"4.8.8.53"})," ",(0,r.jsx)("sup",{children:"\u23f1\ufe0f2023.11.07"})," ",(0,r.jsx)(n.a,{href:"https://gitee.com/dotnetchina/Furion/issues/I8EF1S",children:"#I8EF1S"})]}),"\n",(0,r.jsxs)(n.li,{children:["\xa0",(0,r.jsx)(i.Z,{children:"\u4fee\u590d"})," \u8fdc\u7a0b\u8bf7\u6c42\u5728\u88ab\u8bf7\u6c42\u7aef\u8fd4\u56de\u975e ",(0,r.jsx)(n.code,{children:"200"})," \u72b6\u6001\u7801\u4f46\u5b9e\u9645\u8bf7\u6c42\u5df2\u5904\u7406\u4e5f\u629b\u5f02\u5e38\u95ee\u9898 ",(0,r.jsx)("sup",{children:"4.8.8.14"})," ",(0,r.jsx)("sup",{children:"\u23f1\ufe0f2023.05.12"})," ",(0,r.jsx)(n.a,{href:"https://gitee.com/dotnetchina/Furion/commit/b14a51fd6f85a905da50729d521a2232b5c9afc1",children:"b14a51f"})]}),"\n",(0,r.jsxs)(n.li,{children:["\xa0",(0,r.jsx)(i.Z,{children:"\u4fee\u590d"})," \u8fdc\u7a0b\u8bf7\u6c42 ",(0,r.jsx)(n.code,{children:"Body"})," \u53c2\u6570\u4e3a\u7c98\u571f\u5bf9\u8c61 ",(0,r.jsx)(n.code,{children:"Clay"})," \u7c7b\u578b\u5e8f\u5217\u5316\u6709\u8bef ",(0,r.jsx)("sup",{children:"4.8.8.1"})," ",(0,r.jsx)("sup",{children:"\u23f1\ufe0f2023.04.18"})," ",(0,r.jsx)(n.a,{href:"https://gitee.com/dotnetchina/Furion/issues/I6WKRZ",children:"#I6WKRZ"})]}),"\n",(0,r.jsxs)(n.li,{children:["\xa0",(0,r.jsx)(i.Z,{children:"\u4fee\u590d"})," \u8fdc\u7a0b\u8bf7\u6c42\u83b7\u53d6 ",(0,r.jsx)(n.code,{children:"Cookies"})," \u65f6\u5982\u679c\u5305\u542b\u76f8\u540c ",(0,r.jsx)(n.code,{children:"Key"})," \u5f02\u5e38\u95ee\u9898 ",(0,r.jsx)("sup",{children:"4.8.7.44"})," ",(0,r.jsx)("sup",{children:"\u23f1\ufe0f2023.04.12"})," ",(0,r.jsx)(n.a,{href:"https://gitee.com/dotnetchina/Furion/issues/I6V3T7",children:"#I6V3T7"})]}),"\n",(0,r.jsxs)(n.li,{children:["\xa0",(0,r.jsx)(i.Z,{children:"\u4fee\u590d"})," \u8fdc\u7a0b\u8bf7\u6c42\u4ee3\u7406\u6a21\u5f0f\u914d\u7f6e\u4e86 ",(0,r.jsx)(n.code,{children:"WithEncodeUrl = false"})," \u65e0\u6548\u95ee\u9898 ",(0,r.jsx)("sup",{children:"4.8.6.4"})," ",(0,r.jsx)("sup",{children:"\u23f1\ufe0f2023.02.16"})," ",(0,r.jsx)(n.a,{href:"https://gitee.com/dotnetchina/Furion/commit/89639ba1db8a7df750d9bca66a887e252622b219",children:"89639ba"})]}),"\n",(0,r.jsxs)(n.li,{children:["\xa0",(0,r.jsx)(i.Z,{children:"\u4fee\u590d"})," \u7531\u4e8e ",(0,r.jsx)(n.a,{href:"https://gitee.com/dotnetchina/Furion/issues/I6D64H",children:"#I6D64H"})," \u5bfc\u81f4\u8fdc\u7a0b\u8bf7\u6c42\u51fa\u73b0 ",(0,r.jsx)(n.code,{children:"Specified method is not supported."})," \u95ee\u9898 ",(0,r.jsx)("sup",{children:"4.8.5.9"})," ",(0,r.jsx)("sup",{children:"\u23f1\ufe0f2023.02.07"})," ",(0,r.jsx)(n.a,{href:"https://gitee.com/dotnetchina/Furion/issues/I6DEEE",children:"#I6DEEE"})," ",(0,r.jsx)(n.a,{href:"https://gitee.com/dotnetchina/Furion/issues/I6D64H",children:"#I6D64H"})]}),"\n",(0,r.jsxs)(n.li,{children:["\xa0",(0,r.jsx)(i.Z,{children:"\u4fee\u590d"})," ",(0,r.jsxs)(n.del,{children:["\u4f18\u5316\u8fdc\u7a0b\u8bf7\u6c42 ",(0,r.jsx)(n.code,{children:"ReadAsStringAsync"})," \u5e95\u5c42\u65b9\u6cd5\uff0c\u5c1d\u8bd5\u4fee\u590d ",(0,r.jsx)(n.code,{children:"Error while copying content to a stream."})," \u9519\u8bef ",(0,r.jsx)("sup",{children:"4.8.5.8"})," ",(0,r.jsx)("sup",{children:"\u23f1\ufe0f2023.02.06"})," ",(0,r.jsx)(n.a,{href:"https://gitee.com/dotnetchina/Furion/issues/I6D64H",children:"#I6D64H"})]})]}),"\n",(0,r.jsxs)(n.li,{children:["\xa0",(0,r.jsx)(i.Z,{children:"\u4fee\u590d"})," \u8fdc\u7a0b\u8bf7\u6c42\u914d\u7f6e ",(0,r.jsx)(n.code,{children:"WithEncodeUrl(false)"})," \u5bf9 ",(0,r.jsx)(n.code,{children:"application/x-www-form-urlencoded"})," \u8bf7\u6c42\u7c7b\u578b\u65e0\u6548 ",(0,r.jsx)("sup",{children:"4.8.4"})," ",(0,r.jsx)("sup",{children:"\u23f1\ufe0f2022.12.30"})," ",(0,r.jsx)(n.a,{href:"https://gitee.com/dotnetchina/Furion/issues/I682DX",children:"#I682DX"})]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u5176\u4ed6\u66f4\u6539"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\xa0",(0,r.jsx)(i.Z,{children:"\u8c03\u6574"})," \u53d6\u6d88\u8fdc\u7a0b\u8bf7\u6c42 ",(0,r.jsx)(n.code,{children:"GET/HEAD"})," \u4e0d\u80fd\u4f20\u9012 ",(0,r.jsx)(n.code,{children:"Body"})," \u7684\u9650\u5236 ",(0,r.jsx)("sup",{children:"4.8.8.39"})," ",(0,r.jsx)("sup",{children:"\u23f1\ufe0f2023.08.02"})," ",(0,r.jsx)(n.a,{href:"https://gitee.com/dotnetchina/Furion/commit/8113460ab8b23cbf392c49b79fe4eb77a89c8010",children:"8113460"})]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u6587\u6863"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\xa0",(0,r.jsx)(i.Z,{children:"\u65b0\u589e"})," \u8fdc\u7a0b\u8bf7\u6c42 ",(0,r.jsx)(n.code,{children:"[QueryString]"})," \u914d\u7f6e\u65f6\u95f4\u7c7b\u578b ",(0,r.jsx)(n.code,{children:"Format"})," \u683c\u5f0f\u5316\u6587\u6863 ",(0,r.jsx)("sup",{children:"4.8.1.2"})," ",(0,r.jsx)("sup",{children:"\u23f1\ufe0f2022.11.25"})," ",(0,r.jsx)(n.a,{href:"https://gitee.com/dotnetchina/Furion/pulls/673",children:"!673"})]}),"\n"]}),"\n"]}),"\n"]})})})]}),"\n",(0,r.jsx)(n.admonition,{title:"\u7248\u672c\u8bf4\u660e",type:"important",children:(0,r.jsxs)(n.p,{children:["\u4ee5\u4e0b\u5185\u5bb9\u4ec5\u9650 ",(0,r.jsx)(n.code,{children:"Furion 1.16.0 +"})," \u7248\u672c\u4f7f\u7528\u3002"]})}),"\n","\n","\n",(0,r.jsx)(n.h2,{id:"191-\u5173\u4e8e\u8fdc\u7a0b\u8bf7\u6c42",children:"19.1 \u5173\u4e8e\u8fdc\u7a0b\u8bf7\u6c42"}),"\n",(0,r.jsxs)(n.p,{children:["\u5728\u4e92\u8054\u7f51\u5927\u6570\u636e\u7684\u9a71\u52a8\u4e0b\uff0c\u5e73\u53f0\u6216\u7cfb\u7edf\u514d\u4e0d\u4e86\u9700\u8981\u548c\u7b2c\u4e09\u65b9\u8fdb\u884c\u6570\u636e\u4ea4\u4e92\uff0c\u800c\u7b2c\u4e09\u65b9\u5f80\u5f80\u63d0\u4f9b\u4e86 ",(0,r.jsx)(n.code,{children:"RESTful API"})," \u63a5\u53e3\u89c4\u8303\uff0c\u8fd9\u4e2a\u65f6\u5019\u5c31\u9700\u8981\u901a\u8fc7 ",(0,r.jsx)(n.code,{children:"Http"})," \u8bf7\u6c42\u7b2c\u4e09\u65b9\u63a5\u53e3\u8fdb\u884c\u6570\u636e\u4f20\u8f93\u4ea4\u4e92\u3002"]}),"\n",(0,r.jsx)(n.p,{children:"\u4e5f\u5c31\u662f\u672c\u7ae0\u8282\u6240\u8bf4\u7684\u8fdc\u7a0b\u8bf7\u6c42\u3002"}),"\n",(0,r.jsx)(n.h2,{id:"192-\u8fdc\u7a0b\u8bf7\u6c42\u7684\u4f5c\u7528",children:"19.2 \u8fdc\u7a0b\u8bf7\u6c42\u7684\u4f5c\u7528"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u8de8\u7cfb\u7edf\u3001\u8de8\u8bbe\u5907\u901a\u4fe1"}),"\n",(0,r.jsx)(n.li,{children:"\u5b9e\u73b0\u591a\u4e2a\u7cfb\u7edf\u6570\u636e\u4f20\u8f93\u4ea4\u4e92"}),"\n",(0,r.jsx)(n.li,{children:"\u8de8\u7f16\u7a0b\u8bed\u8a00\u534f\u540c\u5f00\u53d1"}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"193-\u57fa\u7840\u4f7f\u7528",children:"19.3 \u57fa\u7840\u4f7f\u7528"}),"\n",(0,r.jsx)(n.h3,{id:"1931-\u6ce8\u518c\u670d\u52a1",children:"19.3.1 \u6ce8\u518c\u670d\u52a1"}),"\n",(0,r.jsxs)(n.p,{children:["\u4f7f\u7528\u4e4b\u524d\u9700\u5728 ",(0,r.jsx)(n.code,{children:"Startup.cs"})," \u6ce8\u518c ",(0,r.jsx)(n.code,{children:"\u8fdc\u7a0b\u8bf7\u6c42\u670d\u52a1"})]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers {3}",children:"public void ConfigureServices(IServiceCollection services)\r\n{\r\n services.AddRemoteRequest();\r\n}\n"})}),"\n",(0,r.jsx)(n.h3,{id:"1932-\u4f7f\u7528\u65b9\u5f0f",children:"19.3.2 \u4f7f\u7528\u65b9\u5f0f"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"Furion"})," \u63d0\u4f9b\u4e24\u79cd\u65b9\u5f0f\u8bbf\u95ee\u53d1\u9001\u8fdc\u7a0b\u8bf7\u6c42\u3002"]}),"\n",(0,r.jsxs)(l.Z,{defaultValue:"IHttpDispatchProxy \u4ee3\u7406\u65b9\u5f0f",values:[{label:"IHttpDispatchProxy \u4ee3\u7406\u65b9\u5f0f",value:"IHttpDispatchProxy \u4ee3\u7406\u65b9\u5f0f"},{label:"\u5b57\u7b26\u4e32\u62d3\u5c55\u65b9\u5f0f",value:"\u5b57\u7b26\u4e32\u62d3\u5c55\u65b9\u5f0f"}],children:[(0,r.jsxs)(c.Z,{value:"IHttpDispatchProxy \u4ee3\u7406\u65b9\u5f0f",children:[(0,r.jsxs)(n.p,{children:["\u5b9a\u4e49\u4ee3\u7406\u8bf7\u6c42\u7684 ",(0,r.jsx)(n.code,{children:"\u63a5\u53e3"})," \u5e76\u7ee7\u627f ",(0,r.jsx)(n.code,{children:"IHttpDispatchProxy"})," \u63a5\u53e3"]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers {1,3,6,9,12,15,18}",children:'public interface IHttp : IHttpDispatchProxy\r\n{\r\n [Get("http://furion.baiqian.ltd/get")]\r\n Task GetXXXAsync();\r\n\r\n [Post("http://furion.baiqian.ltd/post")]\r\n Task PostXXXAsync();\r\n\r\n [Put("http://furion.baiqian.ltd/put")]\r\n Task PutXXXAsync();\r\n\r\n [Delete("http://furion.baiqian.ltd/delete")]\r\n Task DeleteXXXAsync();\r\n\r\n [Patch("http://furion.baiqian.ltd/patch")]\r\n Task PatchXXXAsync();\r\n\r\n [Head("http://furion.baiqian.ltd/head")]\r\n Task HeadXXXAsync();\r\n}\n'})}),(0,r.jsxs)(n.p,{children:["\u901a\u8fc7\u6784\u9020\u51fd\u6570\u6ce8\u5165 ",(0,r.jsx)(n.code,{children:"\u63a5\u53e3"})]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers {9,16}",children:"using Furion.DynamicApiController;\r\nusing Furion.RemoteRequest.Extensions;\r\n\r\nnamespace Furion.Application\r\n{\r\n public class RemoteRequestService : IDynamicApiController\r\n {\r\n private readonly IHttp _http;\r\n public RemoteRequestService(IHttp http)\r\n {\r\n _http = http;\r\n }\r\n\r\n public async Task GetData()\r\n {\r\n var data = await _http.GetXXXAsync();\r\n }\r\n }\r\n}\n"})})]}),(0,r.jsxs)(c.Z,{value:"\u5b57\u7b26\u4e32\u62d3\u5c55\u65b9\u5f0f",children:[(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'var response = await "http://furion.baiqian.ltd/get".GetAsync();\r\n\r\nvar response = await "http://furion.baiqian.ltd/post".PostAsync();\r\n\r\nvar response = await "http://furion.baiqian.ltd/put".PutAsync();\r\n\r\nvar response = await "http://furion.baiqian.ltd/delete".DeleteAsync();\r\n\r\nvar response = await "http://furion.baiqian.ltd/patch".PatchAsync();\r\n\r\nvar response = await "http://furion.baiqian.ltd/head".HeadAsync();\n'})}),(0,r.jsxs)(n.p,{children:["\u9700\u5f15\u5165 ",(0,r.jsx)(n.code,{children:"using Furion.RemoteRequest.Extensions"})," \u547d\u540d\u7a7a\u95f4\u3002"]})]})]}),"\n",(0,r.jsx)(n.h2,{id:"194-\u5b57\u7b26\u4e32\u65b9\u5f0f\u4f7f\u7528\u793a\u4f8b",children:"19.4 \u5b57\u7b26\u4e32\u65b9\u5f0f\u4f7f\u7528\u793a\u4f8b"}),"\n",(0,r.jsx)(n.admonition,{title:"\u6e29\u99a8\u63d0\u793a",type:"important",children:(0,r.jsxs)(n.p,{children:["\u63a8\u8350\u4f7f\u7528 \u300a",(0,r.jsx)(n.a,{href:"/docs/http#195-ihttpdispatchproxy-%E4%BB%A3%E7%90%86%E6%96%B9%E5%BC%8F",children:"19.5 \u4ee3\u7406\u65b9\u5f0f"}),"\u300b\u4ee3\u66ff\u672c\u5c0f\u8282\u529f\u80fd\u3002",(0,r.jsx)(n.code,{children:"\u4ee3\u7406\u65b9\u5f0f"})," \u80fd\u591f\u63d0\u4f9b\u66f4\u5bb9\u6613\u4e14\u66f4\u6613\u7ef4\u62a4\u7684\u65b9\u5f0f\u3002"]})}),"\n",(0,r.jsx)(n.h3,{id:"1941-\u5185\u7f6e\u8bf7\u6c42\u65b9\u5f0f",children:"19.4.1 \u5185\u7f6e\u8bf7\u6c42\u65b9\u5f0f"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'// \u53d1\u9001 Get \u8bf7\u6c42\r\nvar response = await "http://furion.baiqian.ltd/get".GetAsync();\r\n\r\n// \u53d1\u9001 Post \u8bf7\u6c42\r\nvar response = await "http://furion.baiqian.ltd/post".PostAsync();\r\n\r\n// \u53d1\u9001 Put \u8bf7\u6c42\r\nvar response = await "http://furion.baiqian.ltd/put".PutAsync();\r\n\r\n// \u53d1\u9001 Delete \u8bf7\u6c42\r\nvar response = await "http://furion.baiqian.ltd/delete".DeleteAsync();\r\n\r\n// \u53d1\u9001 Patch \u8bf7\u6c42\r\nvar response = await "http://furion.baiqian.ltd/patch".PatchAsync();\r\n\r\n// \u53d1\u9001 Head \u8bf7\u6c42\r\nvar response = await "http://furion.baiqian.ltd/head".HeadAsync();\r\n\r\n// \u624b\u52a8\u6307\u5b9a\u53d1\u9001\u7279\u5b9a\u8bf7\u6c42\r\nvar response = await "http://furion.baiqian.ltd/post".SetHttpMethod(HttpMethod.Post)\r\n .SendAsync();\n'})}),"\n",(0,r.jsx)(n.h3,{id:"1942-\u8bbe\u7f6e\u8bf7\u6c42\u5730\u5740",children:"19.4.2 \u8bbe\u7f6e\u8bf7\u6c42\u5730\u5740"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'// \u8be5\u65b9\u5f0f\u5728 Furion v3.0.0 \u5df2\u79fb\u9664\uff0c\u591a\u6b64\u4e00\u4e3e\u4e86\r\nawait "".SetRequestUrl("http://furion.baiqian.ltd/");\n'})}),"\n",(0,r.jsx)(n.h3,{id:"1943-\u8bbe\u7f6e\u8bf7\u6c42\u65b9\u5f0f",children:"19.4.3 \u8bbe\u7f6e\u8bf7\u6c42\u65b9\u5f0f"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'await "http://furion.baiqian.ltd/post".SetHttpMethod(HttpMethod.Get);\n'})}),"\n",(0,r.jsx)(n.h3,{id:"1944-\u8bbe\u7f6e\u5730\u5740\u6a21\u677f",children:"19.4.4 \u8bbe\u7f6e\u5730\u5740\u6a21\u677f"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'// \u5b57\u5178\u65b9\u5f0f\r\nawait "http://furion.baiqian.ltd/post/{id}?name={name}&id={p.Id}".SetTemplates(new Dictionary {\r\n { "id", 1 },\r\n { "name", "Furion" },\r\n { "p.Id", new Person { Id = 1 } }\r\n});\r\n\r\n// \u5bf9\u8c61/\u533f\u540d\u5bf9\u8c61\u65b9\u5f0f\r\nawait "http://furion.baiqian.ltd/post/{id}?name={name}".SetTemplates(new {\r\n id = 1,\r\n name = "Furion"\r\n});\n'})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u6ce8\uff1a\u6a21\u677f\u66ff\u6362\u533a\u5206\u5927\u5c0f\u5199\u3002"})}),"\n",(0,r.jsx)(n.h3,{id:"1945-\u8bbe\u7f6e\u8bf7\u6c42\u62a5\u6587\u5934",children:"19.4.5 \u8bbe\u7f6e\u8bf7\u6c42\u62a5\u6587\u5934"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'// \u5b57\u5178\u65b9\u5f0f\r\nawait "http://furion.baiqian.ltd/post".SetHeaders(new Dictionary {\r\n { "Authorization", "Bearer \u4f60\u7684token"},\r\n { "X-Authorization", "Bearer \u4f60\u7684\u5237\u65b0token"}\r\n});\r\n\r\n// \u5bf9\u8c61/\u533f\u540d\u5bf9\u8c61\u65b9\u5f0f\r\nawait "http://furion.baiqian.ltd/post".SetHeaders(new {\r\n Authorization = "Bearer \u4f60\u7684token"\r\n});\n'})}),"\n",(0,r.jsxs)(n.h3,{id:"1946-\u8bbe\u7f6e-url-\u5730\u5740\u53c2\u6570",children:["19.4.6 \u8bbe\u7f6e ",(0,r.jsx)(n.code,{children:"URL"})," \u5730\u5740\u53c2\u6570"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'// \u5b57\u5178\u65b9\u5f0f\r\nawait "http://furion.baiqian.ltd/get".SetQueries(new Dictionary {\r\n { "id", 1 },\r\n { "name", "Furion"}\r\n});\r\n\r\n// \u5bf9\u8c61/\u533f\u540d\u5bf9\u8c61\u65b9\u5f0f\r\nawait "http://furion.baiqian.ltd/get".SetQueries(new {\r\n id = 1,\r\n name = "Furion"\r\n});\r\n\r\n// Furion 4.7.3+ \u65b0\u589e\u5ffd\u7565 null \u503c\u91cd\u8f7d\r\nawait "http://furion.baiqian.ltd/get".SetQueries(new {\r\n id = 1,\r\n name = "Furion",\r\n nullValue = default(object)\r\n}, true); // \u8bbe\u7f6e true \u5219\u5ffd\u7565 null \u503c\n'})}),"\n",(0,r.jsxs)(n.p,{children:["\u6700\u7ec8\u8f93\u51fa\u683c\u5f0f\u4e3a\uff1a",(0,r.jsx)(n.code,{children:"http://furion.baiqian.ltd/get?id=1&name=Furion"}),"\u3002"]}),"\n",(0,r.jsx)(n.h3,{id:"1947-\u8bbe\u7f6e\u8bf7\u6c42\u5ba2\u6237\u7aef",children:"19.4.7 \u8bbe\u7f6e\u8bf7\u6c42\u5ba2\u6237\u7aef"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.strong,{children:"\u5168\u5c40\u914d\u7f6e\u65b9\u5f0f"})}),"\n"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers {1,3-4,12}",children:'services.AddRemoteRequest(options=>\r\n{\r\n // \u914d\u7f6e Github \u57fa\u672c\u4fe1\u606f\r\n options.AddHttpClient("github", c =>\r\n {\r\n c.BaseAddress = new Uri("https://api.github.com/");\r\n c.DefaultRequestHeaders.Add("Accept", "application/vnd.github.v3+json");\r\n c.DefaultRequestHeaders.Add("User-Agent", "HttpClientFactory-Sample");\r\n });\r\n});\r\n\r\nawait "get".SetClient("github");\n'})}),"\n",(0,r.jsxs)(n.p,{children:["\u6700\u7ec8\u751f\u6210\u8bf7\u6c42\u5730\u5740\u4e3a\uff1a",(0,r.jsx)(n.code,{children:"https://api.github.com/get"}),"\u3002"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.strong,{children:"\u5c40\u90e8\u914d\u7f6e\u65b9\u5f0f"})}),"\n"]}),"\n",(0,r.jsx)(n.admonition,{title:"\u7248\u672c\u8bf4\u660e",type:"important",children:(0,r.jsxs)(n.p,{children:["\u4ee5\u4e0b\u5185\u5bb9\u4ec5\u9650 ",(0,r.jsx)(n.code,{children:"Furion 4.3.8 +"})," \u7248\u672c\u4f7f\u7528\u3002"]})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'await "http://furion.baiqian.ltd".SetClient(() => new HttpClient());\n'})}),"\n",(0,r.jsxs)(n.h3,{id:"1948-\u8bbe\u7f6e-body-\u53c2\u6570",children:["19.4.8 \u8bbe\u7f6e ",(0,r.jsx)(n.code,{children:"Body"})," \u53c2\u6570"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'// \u4f20\u5165\u5bf9\u8c61\r\nawait "http://furion.baiqian.ltd/api/user/add".SetBody(new User { Id = 1, Name = "Furion" });\r\n\r\n// \u914d\u7f6e Content-Type\r\nawait "http://furion.baiqian.ltd/api/user/add".SetBody(new { Id = 1, Name = "Furion" }, "application/json");\r\n\r\n// \u8bbe\u7f6e Encoding \u7f16\u7801\r\nawait "http://furion.baiqian.ltd/api/user/add".SetBody(new User { Id = 1, Name = "Furion" }, "application/json", Encoding.UTF8);\r\n\r\n// \u5904\u7406 application/x-www-form-urlencoded \u8bf7\u6c42\r\nawait "http://furion.baiqian.ltd/api/user/add".SetBody(new Dictionary {\r\n { "Id", 1 },\r\n { "Name", "Furion"}\r\n}, "application/x-www-form-urlencoded");\r\n\r\n// \u5904\u7406 application/xml\u3001text/xml\r\nawait "http://furion.baiqian.ltd/api/user/add".SetBody("somevalue", "application/xml");\n'})}),"\n",(0,r.jsx)(n.admonition,{title:"\u7279\u522b\u6ce8\u610f",type:"important",children:(0,r.jsxs)(n.p,{children:["\u5982\u679c\u8bf7\u6c42 ",(0,r.jsx)(n.code,{children:"Content-Type"})," \u8bbe\u7f6e\u4e3a ",(0,r.jsx)(n.code,{children:"application/x-www-form-urlencoded"})," \u7c7b\u578b\uff0c\u90a3\u4e48\u5e95\u5c42\u81ea\u52a8\u5c06\u6570\u636e\u8fdb\u884c ",(0,r.jsx)(n.code,{children:"UrlEncode"})," \u7f16\u7801\u5904\u7406\uff0c\u65e0\u9700\u5916\u90e8\u5904\u7406\u3002"]})}),"\n",(0,r.jsxs)(n.h3,{id:"1949-\u8bbe\u7f6e-content-type",children:["19.4.9 \u8bbe\u7f6e ",(0,r.jsx)(n.code,{children:"Content-Type"})]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'await "http://furion.baiqian.ltd/post".SetContentType("application/json");\n'})}),"\n",(0,r.jsx)(n.h3,{id:"19410-\u8bbe\u7f6e\u5185\u5bb9\u7f16\u7801",children:"19.4.10 \u8bbe\u7f6e\u5185\u5bb9\u7f16\u7801"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'await "http://furion.baiqian.ltd/post".SetContentEncoding(Encoding.UTF8);\n'})}),"\n",(0,r.jsxs)(n.h3,{id:"19411-\u8bbe\u7f6e-json-\u5e8f\u5217\u5316\u63d0\u4f9b\u7a0b\u5e8f",children:["19.4.11 \u8bbe\u7f6e ",(0,r.jsx)(n.code,{children:"JSON"})," \u5e8f\u5217\u5316\u63d0\u4f9b\u7a0b\u5e8f"]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"Furion"})," \u9ed8\u8ba4\u60c5\u51b5\u4e0b\u91c7\u7528 ",(0,r.jsx)(n.code,{children:"System.Text.Json"})," \u8fdb\u884c ",(0,r.jsx)(n.code,{children:"JSON"})," \u5e8f\u5217\u5316\u5904\u7406\uff0c\u5982\u9700\u8bbe\u7f6e\u7b2c\u4e09\u65b9 ",(0,r.jsx)(n.code,{children:"JSON"})," \u63d0\u4f9b\u5668\uff0c\u5219\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u914d\u7f6e\uff1a"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'// \u6cdb\u578b\u65b9\u5f0f\r\nawait "http://furion.baiqian.ltd/api/user/add".SetJsonSerialization();\r\n\r\n// \u975e\u6cdb\u578b\u65b9\u5f0f\r\nawait "http://furion.baiqian.ltd/api/user/add".SetJsonSerialization(typeof(NewtonsoftJsonSerializerProvider));\r\n\r\n// \u6dfb\u52a0\u66f4\u591a\u914d\u7f6e\r\nawait "http://furion.baiqian.ltd/api/user/add".SetJsonSerialization(new JsonSerializerSettings {\r\n\r\n});\r\n\r\n// \u6bd4\u5982\u914d\u7f6e\u7f3a\u7701\u7684\u5e8f\u5217\u5316\u9009\u9879\r\nawait "http://furion.baiqian.ltd".SetJsonSerialization(default, new JsonSerializerOptions\r\n {\r\n // \u4e2d\u6587\u4e71\u7801\r\n Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping\r\n })\r\n .GetAsAsync();\n'})}),"\n",(0,r.jsxs)(n.admonition,{type:"important",children:[(0,r.jsxs)(n.mdxAdmonitionTitle,{children:["\u5173\u4e8e ",(0,r.jsx)(n.code,{children:"JSON"})," \u5e8f\u5217\u5316\u63d0\u4f9b\u5668"]}),(0,r.jsxs)(n.p,{children:["\u5982\u9700\u4e86\u89e3\u66f4\u591a ",(0,r.jsx)(n.code,{children:"JSON"})," \u5e8f\u5217\u5316\u77e5\u8bc6\u53ef\u67e5\u9605 ",(0,r.jsx)(n.a,{href:"json-serialization#2351-%E8%87%AA%E5%AE%9A%E4%B9%89%E5%BA%8F%E5%88%97%E5%8C%96%E6%8F%90%E4%BE%9B%E5%99%A8",children:"23. JSON \u5e8f\u5217\u5316"})," \u7ae0\u8282"]})]}),"\n",(0,r.jsxs)(n.h3,{id:"19412-\u542f\u7528-body-\u53c2\u6570\u9a8c\u8bc1",children:["19.4.12 \u542f\u7528 ",(0,r.jsx)(n.code,{children:"Body"})," \u53c2\u6570\u9a8c\u8bc1"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'await "http://furion.baiqian.ltd/api/user/add".SetValidationState();\r\n\r\n// \u8bbe\u7f6e\u4e0d\u9a8c\u8bc1 null \u503c\r\nawait "http://furion.baiqian.ltd/api/user/add".SetValidationState(includeNull: true);\n'})}),"\n",(0,r.jsxs)(n.p,{children:["\u652f\u6301\u7c7b\u4e2d ",(0,r.jsx)(n.code,{children:"[Required]"})," \u7b49\u5b8c\u6574\u6a21\u578b\u9a8c\u8bc1\u7279\u6027\u3002"]}),"\n",(0,r.jsx)(n.h3,{id:"19413-\u8bf7\u6c42\u62e6\u622a",children:"19.4.13 \u8bf7\u6c42\u62e6\u622a"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'await "http://furion.baiqian.ltd/".OnRequesting((client, req) => {\r\n // req \u4e3a HttpRequestMessage \u5bf9\u8c61\r\n // \u8ffd\u52a0\u66f4\u591a\u53c2\u6570\r\n req.AppendQueries(new Dictionary {\r\n { "access_token", "xxxx"}\r\n });\r\n});\n'})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u652f\u6301\u591a\u6b21\u62e6\u622a"})}),"\n",(0,r.jsxs)(n.h3,{id:"19414-httpclient-\u62e6\u622a",children:["19.4.14 ",(0,r.jsx)(n.code,{children:"HttpClient"})," \u62e6\u622a"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'await "http://furion.baiqian.ltd/".OnClientCreating(client => {\r\n // client \u4e3a HttpClient \u5bf9\u8c61\r\n client.Timeout = TimeSpan.FromSeconds(30); // \u8bbe\u7f6e\u8d85\u65f6\u65f6\u95f4\r\n});\n'})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u652f\u6301\u591a\u6b21\u62e6\u622a"})}),"\n",(0,r.jsx)(n.h3,{id:"19415-\u8bf7\u6c42\u4e4b\u524d\u62e6\u622a",children:"19.4.15 \u8bf7\u6c42\u4e4b\u524d\u62e6\u622a"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'await "http://furion.baiqian.ltd/".OnRequesting((client, req) => {\r\n // req \u4e3a HttpRequestMessage \u5bf9\u8c61\r\n});\n'})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u652f\u6301\u591a\u6b21\u62e6\u622a"})}),"\n",(0,r.jsx)(n.h3,{id:"19416-\u6210\u529f\u8bf7\u6c42\u62e6\u622a",children:"19.4.16 \u6210\u529f\u8bf7\u6c42\u62e6\u622a"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'await "http://furion.baiqian.ltd/".OnResponsing((client, res) => {\r\n // res \u4e3a HttpResponseMessage \u5bf9\u8c61\r\n});\n'})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u652f\u6301\u591a\u6b21\u62e6\u622a"})}),"\n",(0,r.jsx)(n.h3,{id:"19417-\u8bf7\u6c42\u5f02\u5e38\u62e6\u622a",children:"19.4.17 \u8bf7\u6c42\u5f02\u5e38\u62e6\u622a"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'await "http://furion.baiqian.ltd/".OnException((client, res, errors) => {\r\n // res \u4e3a HttpResponseMessage \u5bf9\u8c61\r\n});\n'})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u652f\u6301\u591a\u6b21\u62e6\u622a"})}),"\n",(0,r.jsx)(n.h3,{id:"19418-\u5404\u79cd\u8fd4\u56de\u503c\u5904\u7406",children:"19.4.18 \u5404\u79cd\u8fd4\u56de\u503c\u5904\u7406"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"Furion"})," \u8fdc\u7a0b\u8bf7\u6c42\u9ed8\u8ba4\u63d0\u4f9b\u56db\u79cd\u8fd4\u56de\u503c\u7c7b\u578b\uff1a"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"HttpResponseMessage"}),"\uff1a\u8bf7\u6c42\u54cd\u5e94\u6d88\u606f\u7c7b\u578b"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"Stream"}),"\uff1a\u6d41\u7c7b\u578b\uff0c\u53ef\u7528\u6765\u4e0b\u8f7d\u6587\u4ef6"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"T"}),"\uff1a\u6cdb\u578b ",(0,r.jsx)(n.code,{children:"T"})," \u7c7b\u578b"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"String"}),"\uff1a\u5b57\u7b26\u4e32\u7c7b\u578b\uff0c\u4e5f\u5c31\u662f\u76f4\u63a5\u5c06\u7f51\u7edc\u8bf7\u6c42\u7ed3\u679c\u5185\u5bb9\u5b57\u7b26\u4e32\u5316"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"Byte[]"}),"\uff1a\u5b57\u8282\u6570\u7ec4\u7c7b\u578b"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"\u5982\uff1a"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'// HttpResponseMessage\r\nvar res = await "http://furion.baiqian.ltd/".GetAsync();\r\n\r\n// Stream\uff0c\u53ef\u7528\u6765\u4e0b\u8f7d\u6587\u4ef6\r\nvar (stream, encoding) = await "http://furion.baiqian.ltd/".GetAsStreamAsync();\r\n\r\n// T\r\nvar user = await "http://furion.baiqian.ltd/".GetAsAsync();\r\n\r\n// String\r\nvar str = await "https://www.baidu.com".GetAsStringAsync();\n'})}),"\n",(0,r.jsxs)(n.h3,{id:"19419-\u8bbe\u7f6e-bytestream-\u7c7b\u578b\u4e0a\u4f20\u6587\u4ef6",children:["19.4.19 \u8bbe\u7f6e ",(0,r.jsx)(n.code,{children:"Byte[]/Stream"})," \u7c7b\u578b/\u4e0a\u4f20\u6587\u4ef6"]}),"\n",(0,r.jsxs)(n.admonition,{type:"warning",children:[(0,r.jsxs)(n.mdxAdmonitionTitle,{children:[(0,r.jsx)(n.code,{children:"Furion 4.4.0"})," \u4ee5\u4e0b\u7248\u672c"]}),(0,r.jsxs)(n.p,{children:["\u5728 ",(0,r.jsx)(n.code,{children:"Furion 4.4.0+"})," \u7248\u672c\u79fb\u9664\u4e86 ",(0,r.jsx)(n.code,{children:".SetBodyBytes"})," \u65b9\u5f0f\uff0c\u539f\u56e0\u662f\u62d3\u5c55\u6027\u592a\u5dee\uff0c",(0,r.jsxs)(n.strong,{children:["\u65b0\u7248\u672c\u8bf7\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:".SetFiles"})," \u65b9\u5f0f"]}),"\u3002"]})]}),"\n",(0,r.jsxs)(n.p,{children:["\u6709\u65f6\u5019\u6211\u4eec\u9700\u8981\u4e0a\u4f20\u6587\u4ef6\uff0c\u9700\u8981\u8bbe\u7f6e ",(0,r.jsx)(n.code,{children:"Content-Type"})," \u4e3a ",(0,r.jsx)(n.code,{children:"multipart/form-data"})," \u7c7b\u578b\uff0c\u5982\uff1a"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers {3,7,10,15}",children:'// \u652f\u6301\u5355\u6587\u4ef6\uff0cbytes \u53ef\u4ee5\u901a\u8fc7 File.ReadAllBytes(\u6587\u4ef6\u8def\u5f84) \u83b7\u53d6\r\nvar res = await "http://furion.baiqian.ltd/upload".SetContentType("multipart/form-data")\r\n .SetBodyBytes(("\u952e", bytes, "\u6587\u4ef6\u540d")).PostAsync();\r\n\r\n// \u652f\u6301\u591a\u4e2a\u6587\u4ef6\r\nvar res = await "http://furion.baiqian.ltd/upload".SetContentType("multipart/form-data")\r\n .SetBodyBytes(("\u952e", bytes, "\u6587\u4ef6\u540d"),("\u952e", bytes, "\u6587\u4ef6\u540d")).PostAsync();\r\n\r\n// \u652f\u6301\u5355\u6587\u4ef6\uff0cFurion 4.5.8 \u7248\u672c\u652f\u6301 Stream \u65b9\u5f0f\u66f4\u65b0\r\nvar res = await "http://furion.baiqian.ltd/upload".SetContentType("multipart/form-data")\r\n .SetBodyBytes(("\u952e", fileStream, "\u6587\u4ef6\u540d")).PostAsync();\r\n\r\n// \u652f\u6301\u591a\u4e2a\u6587\u4ef6\uff0cFurion 4.5.8 \u7248\u672c\u652f\u6301 Stream \u65b9\u5f0f\u66f4\u65b0\r\nvar res = await "http://furion.baiqian.ltd/upload".SetContentType("multipart/form-data")\r\n .SetBodyBytes(("\u952e", fileStream, "\u6587\u4ef6\u540d"),("\u952e", fileStream, "\u6587\u4ef6\u540d")).PostAsync();\n'})}),"\n",(0,r.jsxs)(n.admonition,{title:"\u5173\u4e8e\u5fae\u4fe1\u4e0a\u4f20\u63a5\u53e3",type:"note",children:[(0,r.jsxs)(n.p,{children:["\u5982\u679c\u9047\u5230\u5fae\u4fe1\u4e0a\u4f20\u51fa\u73b0\u95ee\u9898\uff0c\u5219\u53ef\u8bbe\u7f6e ",(0,r.jsx)(n.code,{children:"Content-Type"})," \u4e3a\uff1a",(0,r.jsx)(n.code,{children:"application/octet-stream"}),"\uff0c\u5982\uff1a"]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'var result = await $"https://api.weixin.qq.com/wxa/img_sec_check?access_token={token}"\r\n .SetBodyBytes(("media", bytes, Path.GetFileName(imgPath)))\r\n .SetContentType("application/octet-stream")\r\n .PostAsStringAsync();\n'})})]}),"\n",(0,r.jsxs)(n.admonition,{type:"tip",children:[(0,r.jsxs)(n.mdxAdmonitionTitle,{children:[(0,r.jsx)(n.code,{children:"Furion 4.4.0+"})," \u7248\u672c"]}),(0,r.jsxs)(n.p,{children:["\u5982\u679c\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"Furion 4.4.0+"})," \u7248\u672c\uff0c\u8bf7\u4f7f\u7528\u4ee5\u4e0b\u7684 ",(0,r.jsx)(n.code,{children:".SetFiles"})," \u66ff\u4ee3 ",(0,r.jsx)(n.code,{children:".SetBodyBytes"})," \u64cd\u4f5c\u3002"]})]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers {3,7}",children:'// bytes \u53ef\u4ee5\u901a\u8fc7 File.ReadAllBytes(\u6587\u4ef6\u8def\u5f84) \u83b7\u53d6\r\nvar res = await "http://furion.baiqian.ltd/upload".SetContentType("multipart/form-data")\r\n .SetFiles(HttpFile.Create("file", bytes, "image.png")).PostAsync();\r\n\r\n// \u652f\u6301\u591a\u4e2a\u6587\u4ef6\r\nvar res = await "http://furion.baiqian.ltd/upload".SetContentType("multipart/form-data")\r\n .SetFiles(HttpFile.CreateMultiple("files", (bytes, "image1.png"), (bytes, "image2.png"))).PostAsync();\n'})}),"\n",(0,r.jsxs)(n.h3,{id:"19420-\u8bbe\u7f6e-iserviceprovider",children:["19.4.20 \u8bbe\u7f6e ",(0,r.jsx)(n.code,{children:"IServiceProvider"})]}),"\n",(0,r.jsxs)(n.p,{children:["\u6709\u65f6\u5019\u6211\u4eec\u9700\u8981\u6784\u5efa\u4e00\u4e2a\u4f5c\u7528\u57df\u7684 ",(0,r.jsx)(n.code,{children:"IServiceProvider"}),"\uff0c\u8fd9\u65f6\u53ea\u9700\u8981\u8bbe\u7f6e\u5373\u53ef\uff1a"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'var res = await "http://furion.baiqian.ltd/upload".SetRequestScoped(services);\n'})}),"\n",(0,r.jsx)(n.h3,{id:"19421-\u652f\u6301\u6a21\u677f\u914d\u7f6e",children:"19.4.21 \u652f\u6301\u6a21\u677f\u914d\u7f6e"}),"\n",(0,r.jsxs)(n.p,{children:["\u6a21\u677f\u683c\u5f0f\u4e3a\uff1a",(0,r.jsx)(n.code,{children:"#(\u914d\u7f6e\u8def\u5f84)"})]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'var res = await "#(Furion:Address)/upload".GetAsync();\n'})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-json",metastring:"showLineNumbers",children:'{\r\n "Furion": {\r\n "Address": "http://furion.baiqian.ltd"\r\n }\r\n}\n'})}),"\n",(0,r.jsx)(n.h3,{id:"19422-\u91cd\u8bd5\u7b56\u7565",children:"19.4.22 \u91cd\u8bd5\u7b56\u7565"}),"\n",(0,r.jsxs)(n.p,{children:["\u5728 ",(0,r.jsx)(n.code,{children:"Furion v2.18+"})," \u7248\u672c\u652f\u6301\u914d\u7f6e\u91cd\u8bd5\u7b56\u7565\uff0c\u5982\uff1a"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'var res = await "http://furion.baiqian.ltd".SetRetryPolicy(3, 1000).GetAsync();\n'})}),"\n",(0,r.jsxs)(n.p,{children:["\u4ee5\u4e0a\u4ee3\u7801\u8868\u793a\u8bf7\u6c42\u5931\u8d25\u91cd\u8bd5 ",(0,r.jsx)(n.code,{children:"3"})," \u6b21\uff0c\u6bcf\u6b21\u5ef6\u8fdf ",(0,r.jsx)(n.code,{children:"1000ms"})," \u3002"]}),"\n",(0,r.jsxs)(n.h3,{id:"19423-\u652f\u6301-gzip-\u538b\u7f29",children:["19.4.23 \u652f\u6301 ",(0,r.jsx)(n.code,{children:"GZip"})," \u538b\u7f29"]}),"\n",(0,r.jsxs)(n.p,{children:["\u5728 ",(0,r.jsx)(n.code,{children:"Furion v3.2.0+"})," \u7248\u672c\u652f\u6301",(0,r.jsx)(n.code,{children:"GZip"})," \u538b\u7f29\uff0c\u5982\uff1a"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'var res = await "http://furion.baiqian.ltd".WithGZip().GetAsync();\n'})}),"\n",(0,r.jsxs)(n.h3,{id:"19424-\u8bbe\u7f6e-url-\u8f6c\u7801",children:["19.4.24 \u8bbe\u7f6e ",(0,r.jsx)(n.code,{children:"Url"})," \u8f6c\u7801"]}),"\n",(0,r.jsxs)(n.p,{children:["\u8fc7\u53bb\u7248\u672c\u4f1a\u5bf9\u6240\u6709\u7684 ",(0,r.jsx)(n.code,{children:"Url"})," \u8fdb\u884c ",(0,r.jsx)(n.code,{children:"Uri.EscapeDataString"})," \u8f6c\u7801\uff0c\u5728 ",(0,r.jsx)(n.code,{children:"Furion v3.8.0+"})," \u7248\u672c\u652f\u6301 ",(0,r.jsx)(n.code,{children:"Url"})," \u8f6c\u7801\u8bbe\u7f6e\uff0c\u5982\uff1a"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'var res = await "http://furion.baiqian.ltd".WithEncodeUrl(false).GetAsync();\n'})}),"\n",(0,r.jsxs)(n.h3,{id:"19425-\u8bbe\u7f6e-http-\u7248\u672c",children:["19.4.25 \u8bbe\u7f6e ",(0,r.jsx)(n.code,{children:"HTTP"})," \u7248\u672c"]}),"\n",(0,r.jsxs)(n.p,{children:["\u53ef\u89e3\u51b3\u4e00\u4e9b ",(0,r.jsx)(n.code,{children:"HTTP"})," \u548c ",(0,r.jsx)(n.code,{children:"HTTPS"})," \u8bf7\u6c42\u95ee\u9898\u3002"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'var res = await "http://furion.baiqian.ltd".SetHttpVersion("1.0").GetAsync(); // Furion 4.8.5.8+ \u652f\u6301\n'})}),"\n",(0,r.jsx)(n.h3,{id:"19426-\u4e0b\u8f7d\u8fdc\u7a0b\u6587\u4ef6\u5e76\u4fdd\u5b58",children:"19.4.26 \u4e0b\u8f7d\u8fdc\u7a0b\u6587\u4ef6\u5e76\u4fdd\u5b58"}),"\n",(0,r.jsx)(n.admonition,{title:"\u7248\u672c\u8bf4\u660e",type:"important",children:(0,r.jsxs)(n.p,{children:["\u4ee5\u4e0b\u5185\u5bb9\u4ec5\u9650 ",(0,r.jsx)(n.code,{children:"Furion 4.8.7.32 +"})," \u7248\u672c\u4f7f\u7528\u3002"]})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'await "http://furion.baiqian.ltd/img/rm1.png".GetToSaveAsync("D:/rm3.png");\r\nawait "http://furion.baiqian.ltd/img/rm1.png".PostToSaveAsync("D:/rm3.png");\r\n...\n'})}),"\n",(0,r.jsxs)(n.h2,{id:"195-ihttpdispatchproxy-\u4ee3\u7406\u65b9\u5f0f",children:["19.5 ",(0,r.jsx)(n.code,{children:"IHttpDispatchProxy"})," \u4ee3\u7406\u65b9\u5f0f"]}),"\n",(0,r.jsx)(n.h3,{id:"1951-\u652f\u6301\u591a\u79cd\u4ee3\u7406\u65b9\u5f0f",children:"19.5.1 \u652f\u6301\u591a\u79cd\u4ee3\u7406\u65b9\u5f0f"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'public interface IHttp : IHttpDispatchProxy\r\n{\r\n // \u53d1\u9001 Get \u8bf7\u6c42\r\n [Get("http://furion.baiqian.ltd/get")]\r\n Task GetXXXAsync();\r\n\r\n // \u53d1\u9001 Post \u8bf7\u6c42\r\n [Post("http://furion.baiqian.ltd/post")]\r\n Task PostXXXAsync();\r\n\r\n // \u53d1\u9001 Put \u8bf7\u6c42\r\n [Put("http://furion.baiqian.ltd/put")]\r\n Task PutXXXAsync();\r\n\r\n // \u53d1\u9001 Delete \u8bf7\u6c42\r\n [Delete("http://furion.baiqian.ltd/delete")]\r\n Task DeleteXXXAsync();\r\n\r\n // \u53d1\u9001 Patch \u8bf7\u6c42\r\n [Patch("http://furion.baiqian.ltd/patch")]\r\n Task PatchXXXAsync();\r\n\r\n // \u53d1\u9001 Head \u8bf7\u6c42\r\n [Head("http://furion.baiqian.ltd/head")]\r\n Task HeadXXXAsync();\r\n}\n'})}),"\n",(0,r.jsx)(n.h3,{id:"1952-\u8bbe\u7f6e\u5730\u5740\u6a21\u677f",children:"19.5.2 \u8bbe\u7f6e\u5730\u5740\u6a21\u677f"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers",children:'public interface IHttp : IHttpDispatchProxy\r\n{\r\n [Get("http://furion.baiqian.ltd/get/{id}?name={name}&number={p.PersonDetail.PhonNumber}")]\r\n Task GetXXXAsync(int id, string name, Person p);\r\n}\n'})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u6ce8\uff1a\u6a21\u677f\u66ff\u6362\u533a\u5206\u5927\u5c0f\u5199\u3002"})}),"\n",(0,r.jsx)(n.h3,{id:"1953-\u8bbe\u7f6e\u8bf7\u6c42\u62a5\u6587\u5934",children:"19.5.3 \u8bbe\u7f6e\u8bf7\u6c42\u62a5\u6587\u5934"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"Furion"})," \u6846\u67b6\u8fdc\u7a0b\u8bf7\u6c42\u4ee3\u7406\u6a21\u5f0f\u63d0\u4f9b\u4e09\u79cd\u65b9\u5f0f\u8bbe\u7f6e\u8bf7\u6c42\u62a5\u6587\u5934\uff1a"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u652f\u6301\u5728\u63a5\u53e3\u4e2d\u58f0\u660e"}),"\n",(0,r.jsx)(n.li,{children:"\u652f\u6301\u5728\u65b9\u6cd5\u4e2d\u58f0\u660e"}),"\n",(0,r.jsx)(n.li,{children:"\u652f\u6301\u5728\u53c2\u6570\u4e2d\u58f0\u660e"}),"\n"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers {1-2,5,9,12}",children:'[Headers("key","value")]\r\n[Headers("key1","value2")] // \u8bbe\u7f6e\u591a\u4e2a\r\npublic interface IHttp : IHttpDispatchProxy\r\n{\r\n [Get("http://furion.baiqian.ltd/get/{id}?name={name}"), Headers("key2","value2")]\r\n Task GetXXXAsync(int id, string name);\r\n\r\n [Get("http://furion.baiqian.ltd")]\r\n Task GetXXX2Async(int id, [Headers]string token = default);\r\n\r\n [Get("http://furion.baiqian.ltd")]\r\n Task GetXXX2Async(int id, string name, [Headers("\u522b\u540d")]string token = default);\r\n}\n'})}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u5982\u9700\u52a8\u6001\u8bbe\u7f6e\uff0c\u53ef\u4f7f\u7528\u4ee5\u4e0b\u65b9\u5f0f\uff08\u6dfb\u52a0\u53c2\u6570\u62e6\u622a\u5668\uff09\uff1a"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers {5}",children:'public interface IHttp : IHttpDispatchProxy\r\n{\r\n // \u901a\u8fc7\u53c2\u6570\u62e6\u622a\r\n [Post("http://furion.baiqian.ltd/post")]\r\n Task PostXXXAsync(string name, [Interceptor(InterceptorTypes.Request)] Action action = default);\r\n}\n'})}),"\n",(0,r.jsx)(n.p,{children:"\u8c03\u7528\uff1a"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers {1,3,9,15}",children:'_http.PostXXXAsync("\u767e\u5c0f\u50e7", (client, requestMessage) =>\r\n{\r\n requestMessage.AppendHeaders(new Dictionary {\r\n { "Authorization", "Bearer \u4f60\u7684token"},\r\n { "X-Authorization", "Bearer \u4f60\u7684\u5237\u65b0token"}\r\n });\r\n\r\n // \u4e5f\u652f\u6301\u5bf9\u8c61\uff0c\u533f\u540d\u65b9\u5f0f\r\n requestMessage.AppendHeaders(new {\r\n Authorization = "Bearer \u4f60\u7684token",\r\n Others = "\u5176\u4ed6"\r\n });\r\n\r\n // \u4e5f\u53ef\u4ee5\u4f7f\u7528\u539f\u751f\r\n requestMessage.Headers.TryAddWithoutValidation("Authorization", "Bearer \u4f60\u7684token");\r\n requestMessage.Headers.TryAddWithoutValidation("key", "value");\r\n});\n'})}),"\n",(0,r.jsxs)(n.h3,{id:"1954-\u8bbe\u7f6e-url-\u5730\u5740\u53c2\u6570",children:["19.5.4 \u8bbe\u7f6e ",(0,r.jsx)(n.code,{children:"URL"})," \u5730\u5740\u53c2\u6570"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers {4,7,10,13,17,21,25}",children:'public interface IHttp : IHttpDispatchProxy\r\n{\r\n [Get("http://furion.baiqian.ltd/get/{id}?name={name}")]\r\n Task GetXXXAsync(int id, string name);\r\n\r\n [Get("http://furion.baiqian.ltd/get/{p.Id}?name={p.Name}")]\r\n Task GetXXXAsync(Person p);\r\n\r\n [Get("http://furion.baiqian.ltd/get")]\r\n Task GetXXXAsync([QueryString]int id, [QueryString]string name);\r\n\r\n [Get("http://furion.baiqian.ltd/get")]\r\n Task GetXXXAsync([QueryString]int id, [QueryString("\u522b\u540d")]string name);\r\n\r\n // Furion 4.8.1.4 \u65b0\u589e [QueryString(Format)] \u914d\u7f6e\u65f6\u95f4\u7c7b\u578b\u683c\u5f0f\u5316\r\n [Get("http://furion.baiqian.ltd/get")]\r\n Task GetXXXAsync([QueryString(Format = "yyyy-MM-dd HH:mm:ss")] DateTime queryStartTime, [QueryString(Format = "yyyy-MM-dd HH:mm:ss")] DateTime queryEndTime);\r\n\r\n // Furion 4.8.1.4 \u65b0\u589e [QueryString(Format)] \u914d\u7f6e\u65f6\u95f4\u7c7b\u578b\u683c\u5f0f\u5316\r\n [Get("http://furion.baiqian.ltd/get")]\r\n Task GetXXXAsync([QueryString(Format = "yyyy-MM-dd HH:mm:ss")] DateTimeOffset queryStartTime, [QueryString(Format = "yyyy-MM-dd HH:mm:ss")] DateTimeOffset queryEndTime);\r\n\r\n // Furion 4.7.3 \u65b0\u589e IgnoreNullValueQueries \u914d\u7f6e\u5ffd\u7565\u7a7a\u503c\r\n [Get("http://furion.baiqian.ltd/get", IgnoreNullValueQueries = true)]\r\n Task GetXXXAsync([QueryString]int id, [QueryString]string name, [QueryString]string nullValue);\r\n}\n'})}),"\n",(0,r.jsxs)(n.p,{children:["\u6700\u7ec8\u8f93\u51fa\u683c\u5f0f\u4e3a\uff1a",(0,r.jsx)(n.code,{children:"http://furion.baiqian.ltd/get?id=1&name=Furion"}),"\u3002"]}),"\n",(0,r.jsxs)(n.admonition,{title:"\u5173\u4e8e\u5bf9\u8c61\u7c7b\u578b\u76f4\u63a5\u4f5c\u4e3a\u6a21\u677f\u53c2\u6570",type:"tip",children:[(0,r.jsxs)(n.p,{children:["\u5728\u5bf9\u63a5\u67d0\u4e9b\u7b2c\u4e09\u65b9\u63a5\u53e3\u7684\u65f6\u5019\u53ef\u80fd\u9047\u5230\u4e00\u79cd\u60c5\u51b5\uff0c\u9700\u8981\u628a\u5bf9\u8c61\u5e8f\u5217\u5316\u6216\u8005\u8fdb\u884c\u67d0\u79cd\u5904\u7406\u540e\u4f5c\u4e3a ",(0,r.jsx)(n.code,{children:"Url"})," \u53c2\u6570\uff0c\u5982\uff1a"]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers {1}",children:'[Get("http://furion.baiqian.ltd/get?json={p}", WithEncodeUrl = false)] // \u8fd9\u91cc\u5c06 p \u4f5c\u4e3a\u6a21\u677f\u4f20\u5165\r\nTask GetXXXAsync(Person p);\n'})}),(0,r.jsxs)(n.p,{children:["\u5982\u679c ",(0,r.jsx)(n.code,{children:"Person"})," \u7c7b\u578b\u4e0d\u505a\u4efb\u4f55\u5904\u7406\uff0c\u90a3\u4e48\u6700\u7ec8\u4f20\u9012\u7684\u662f ",(0,r.jsx)(n.code,{children:"Person"})," \u7684\u547d\u540d\u7a7a\u95f4\uff1a",(0,r.jsx)(n.code,{children:"http://furion.baiqian.ltd/get?json=YourProject.Person"}),"\uff0c\u4f46\u8fd9\u5e76\u975e\u662f\u6211\u4eec\u7684\u9884\u671f\u3002"]}),(0,r.jsxs)(n.p,{children:["\u8fd9\u4e2a\u65f6\u5019\u6211\u4eec\u53ea\u9700\u8981\u91cd\u5199 ",(0,r.jsx)(n.code,{children:"Person"})," \u7684 ",(0,r.jsx)(n.code,{children:"ToString"})," \u65b9\u6cd5\u5373\u53ef\uff0c\u5982\uff1a"]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-cs",metastring:"showLineNumbers {5-8}",children:"public class Person\r\n{\r\n public string Name { get; set; }\r\n\r\n public override string ToString()\r\n {\r\n return JsonSerializer.Serialize(this); // \u6bd4\u5982\u8fd9\u91cc\u505a\u5e8f\u5217\u5316\u5904\u7406\r\n // \u5982\u679c\u57fa\u7c7b\u4e2d override\uff0c\u53ef\u4f7f\u7528 return JsonSerializer.Serialize