13

关于这个话题有很多问题,但是 - 他们没有给我答案。

从建议 - 有一个要设置ServicePointManager.Expect100Continue = false。但这是不可接受的,因为这将是一个模块,与其他几十个模块异步工作。所以可接受的解决方案 - 是每个连接的属性。有一些建议如何设置它,但它似乎不起作用。

这是代码:

var conuri = new Uri(connectionString);
var sp = ServicePointManager.FindServicePoint(conuri);
sp.Expect100Continue = false;

_request = (HttpWebRequest)WebRequest.Create(conuri);
_request.ContentType = "text/xml";
_request.Method = "POST";

_request.ContentLength = dataToSend.Length;
requestStream = _request.GetRequestStream();
requestStream.Write(dataToSend, 0, dataToSend.Length);

问题是,Expect: 100-continue仍然添加了“requestStream.Write”-标头,但它不应该根据我在这里阅读的建议:C# Expect100Continue 标头请求

4

2 回答 2

32

你可以这样做:

_request.ServicePoint.Expect100Continue = false;

这将禁用Expect: 100-continue特定HttpWebRequest实例。

于 2013-03-11T14:41:19.510 回答
0

当此属性设置为 true 时,使用 POST 方法的客户端请求预计会收到来自服务器的 100-Continue 响应,以指示客户端应该发送要发布的数据。当服务器基于请求标头打算拒绝请求时,此机制允许客户端避免通过网络发送大量数据。

ServicePointManager.Expect100Continue = true;

于 2021-03-18T07:55:03.903 回答