HttpWebRequest
Expect: 100-continue
自动为 POST 请求附加标头。互联网上的各种消息来源表明,可以按如下方式禁用此功能:
System.Net.ServicePointManager.Expect100Continue = false;
但是,我正在编写一个库,我不能为整个 appdomain 禁用它,以防应用程序依赖此行为。我也不能假设它将保持设置为该值。如何针对特定请求禁用它?
HttpWebRequest
Expect: 100-continue
自动为 POST 请求附加标头。互联网上的各种消息来源表明,可以按如下方式禁用此功能:
System.Net.ServicePointManager.Expect100Continue = false;
但是,我正在编写一个库,我不能为整个 appdomain 禁用它,以防应用程序依赖此行为。我也不能假设它将保持设置为该值。如何针对特定请求禁用它?
该类HttpWebRequest
有一个名为的属性ServicePoint
,可用于更改特定请求的此设置。例如:
var req = (HttpWebRequest) WebRequest.Create(...);
req.ServicePoint.Expect100Continue = false;
如果您还需要设置代理,请务必先设置。否则Expect100Continue将再次恢复为真。所以:
HttpWebRequest webRequest = WebRequest.CreateHttp(_url);
webRequest.Proxy = new WebProxy(_proxyHost, _proxyPort);
webRequest.ServicePoint.Expect100Continue = false;
这也可以在配置中覆盖:
<system.net>
<settings>
<servicePointManager expect100Continue="false"/>
</settings>
</system.net>