我正在开发一个HTTP客户端,理想情况下应该在需要时传递请求。此外,请求将在特定网络接口上发送(客户端是多宿主的)。
使用异步套接字,为了发出请求,我使用以下代码:
Uri url = new Uri(reqUrl);
ServicePoint sp = ServicePointManager.FindServicePoint(url);
sp.BindIPEndPointDelegate = new BindIPEndPoint(localBind);
pseg.req = (HttpWebRequest)HttpWebRequest.Create(url);
pseg.req.AddRange("bytes", psegStart, psegStart + psegLength - 1);
pseg.req.KeepAlive = true;
pseg.req.Pipelined = true;
对于使用此代码进行的每个请求,都会打开与服务器的单独连接,并以并行方式接收分段。这没关系,但这不是我想要的行为。我希望请求被流水线化,但回复顺序到达。如果我使用锁定或将connectionlimit设置为1,则在完全接收到段#1之后才会发送段#2的请求。
有没有办法实现我想要的东西,仍然使用HttpWebRequest / Response-classes?或者我是否必须下载插座?