HTTP协议之-HttpWebRequest 分包问题

上一遍提到了HTTP协议被拆分为2个包发送的问题,客户端用的是Restsharp,Restsharp使用的是HttpWebRequest 进行的web数据的收发,经查看源码和验证发现最终是HttpWebRequest 进行了分包。

为什么会分包

目的就是为了客户端发送一大堆无用的body到错误的server,造成网络资源的浪费。所以先发送一个header的包,询问服务器是否是你可以接受的。

等待服务器返回个100 continue的应答之后,再把包含内容的body发送过去。而且HttpWebRequest也可以指定是否这么工作。默认值应该是true。

HttpWebRequest如何不分包:

  HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
  request.Headers.Clear();

// set Expect100Continue to false, so it will send only one http package. request.ServicePoint.Expect100Continue = false;
ServicePoint.Expect100Continue = false; 
即可强制一个包发送了。

猜你喜欢

转载自www.cnblogs.com/merray/p/9292666.html