在同一连接上创建2个http请求
我想在同一个连接(HTTP持久连接)上创建2个HTTP请求。在同一连接上创建2个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连接。
是否有另一个班我可以使用isntead还是有什么我失踪?
我也不确定WebClient类如何处理持久连接。
例如:
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();
}
我如何在同一连接中发出第二个请求? – 2010-10-31 16:30:12
.Net框架应该自动重新使用连接。 – SLaks 2010-10-31 16:31:24
所以连接就像HttpWebRequest的静态属性,我需要控制何时有持久连接,何时不通过多个线程使用不同的HttpWebRequests。 – 2010-10-31 16:32:30
,你必须明确地存储和与msinet.ocx该做这一切为您发送会话标识符,不像。例如当连接到一个PHP网络服务器时,会话标识符被存储在标题为Set-Cookie/PHPSESSID = ...的头部中,并且这个头部必须手动添加到下一个httprequest中,但是重命名为Cookie/PHPSESSID = ...
您的代码无法正确读取响应。看到我的答案。 – SLaks 2010-10-31 16:31:53