并行发送多个 WebRequest。

11

我想发送多个 WebRequest 请求。我使用了 Parallel.For 循环来做到这一点,但是循环只运行了一次,第二次获取响应时就会出现错误。

错误:

操作已超时

代码:

Parallel.For(0, 10, delegate(int i) {
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(
        new Uri("http://www.mysite.com/service"));

    string dataToSend = "Data";
    byte[] buffer = System.Text.Encoding.GetEncoding(1252).
        GetBytes(dataToSend);
    request.Method = "POST";
    request.ContentType = "application/x-www-form-urlencoded";
    request.ContentLength = buffer.Length;

    request.Host = "www.mysite.com";

    Stream requestStream = request.GetRequestStream();
    requestStream.Write(buffer, 0, buffer.Length);
    requestStream.Close();

    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
});

2
它给你一个错误信息?真的吗?还有什么特别的问题要问吗? - Darin Dimitrov
什么是异常,它发生在哪里?你确定服务器实际上没有超时吗? - Panagiotis Kanavos
2个回答

12

最有可能的问题是在处理完响应后需要调用response.Close()


12

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接