在C#中使用HttpWebRequest进行流水线操作

时间:2012-05-09 14:33:22

标签: c# http

我正在开发一个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?或者我是否必须下载插座?

0 个答案:

没有答案