Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Send multiple WebRequest in Parallel.For

I want to send multiple WebRequest. I used a Parallel.For loop to do that but the loop runs once and the second time it gives error while getting response.

Error:

The operation has timed out

Code :

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();
});
like image 285
Ankit Avatar asked Sep 19 '11 21:09

Ankit


1 Answers

Most likely the problem is that you need to call response.Close() after you're done processing the response.

like image 81
Jim Mischel Avatar answered Sep 19 '22 10:09

Jim Mischel