关于这个话题有很多问题,但是 - 他们没有给我答案。
从建议开始 - 有一个设置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);
问题是,在“requestStream.Write”点 - 仍然添加了标题Expect: 100-continue
,但它不应该根据我在此处阅读的建议:C# Expect100Continue header request。
答案 0 :(得分:29)
你可以这样做:
_request.ServicePoint.Expect100Continue = false;
这将禁用特定Expect: 100-continue
实例的HttpWebRequest
。
答案 1 :(得分:0)
当此属性设置为 true 时,使用 POST 方法的客户端请求期望从服务器接收 100-Continue 响应,以指示客户端应发送要发布的数据。当服务器根据请求标头打算拒绝请求时,此机制允许客户端避免通过网络发送大量数据。
<块引用>ServicePointManager.Expect100Continue = true;