在同一连接上创建2个http请求

时间:2010-10-31 16:24:56

标签: c# .net http

我想在同一个连接上创建2个HTTP请求(HTTP持久连接)。

我正在使用HttpWebRequest:

        WebRequest request = HttpWebRequest.Create("http://localhost:14890/Service1/3");
        WebResponse response = request.GetResponse();

        byte[] buffer = new byte[1024];
        int x = response.GetResponseStream().Read(buffer, 0, 1024);
        string str = System.Text.ASCIIEncoding.ASCII.GetString(buffer);

我认为如果再次使用request,它将创建一个我不想做的全新HTTP连接。

我可以使用另一个课程吗?或者是否有我遗失的东西?

我也不确定WebClient类如何处理持久连接。

2 个答案:

答案 0 :(得分:1)

设置KeepAlive property

例如:

string str;
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://localhost:14890/Service1/3");
request.KeepAlive = true;
using (WebResponse response = request.GetResponse())
using (Stream responseStream = response.GetResponseStream())
using (StreamReader reader = new StreamReader(responseStream, Encoding.ASCII)) {
    str = reader.ReadToEnd();
}

答案 1 :(得分:1)

如果你想将你的服务器会话从一个httprequest保持到下一个,你已经明确地存储并发送你的会话标识符,这与msinet.ocx不同,后者为你完成了所有这些。例如,当连接到php webserver时,会话标识符存储在标记为Set-Cookie / PHPSESSID = ...的标题中,并且必须手动将标头添加到下一个httprequest,但重命名为Cookie / PHPSESSID = ...