关于这个话题有很多问题,但是 - 他们没有给我任何答案。 从建议来看 - 有一个可以设置
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#gureet100 -continue header requestiserection.
您可以这样做:
_request.ServicePoint.Expect100Continue = false;
Expect: 100-continue
。
当此属性设置为True时,使用POST方法的客户请求期望从服务器接收100次响应,以表明客户端应发送要发布的数据。这种机制使客户避免在服务器基于请求标题的服务器打算拒绝请求时通过网络发送大量数据。
ServicePointManager.expect100 -continue = true;
在问题的日期和答案日期和答案的日期中,对于我在.net8中的问题,此方法不起作用,因为不再应用ServicePointManager设置。但是我们可以在httpclient类中配置此标头,如下所示:
HttpWebRequest