Why does Http Web Request and IWebProxy work at wierd times

Posted by Mike Webb on Stack Overflow See other posts from Stack Overflow or by Mike Webb
Published on 2010-06-07T23:05:12Z Indexed on 2010/06/07 23:12 UTC
Read the original article Hit count: 497

Filed under:
|
|
|
|

Another question about Web proxy.

Here is my code:

IWebProxy Proxya = System.Net.WebRequest.GetSystemWebProxy();
Proxya.Credentials = CredentialCache.DefaultNetworkCredentials;
HttpWebRequest rqst = (HttpWebRequest)WebRequest.Create(targetServer);

rqst.Proxy = Proxya;
rqst.Timeout = 5000;
try
{
    rqst.GetResponse();
}
catch(WebException wex)
{
    connectErrMsg = wex.Message;
    proxyworks = false; 
}

This code fails the first time it is called. After that on successive calls it works sometimes, but not others. It also never hits the catch block.

Now the weird part. If I add a MessageBox.Show(msg) call in the first section of code before the GetResponse() call this all will work every time. Here is an example:

try
{
    // ========Here is where I make the call and get the response========
    System.Windows.Forms.MessageBox.Show("Getting Response");
    // ========This makes the whole thing work every time========


    rqst.GetResponse();
}
catch(WebException wex)
{
    connectErrMsg = wex.Message;
    proxyworks = false; 
}

I'm baffled about why it is behaving this way. I don't know if the timeout is not working (it's in milliseconds, not seconds, so should timeout after 5 seconds, right?...) or what is going on. The most confusing this is that the message box call makes it all work.

So any help and suggestions on what is happening is appreciated. These are the kind of bugs that drive me absolutely out of my mind.

© Stack Overflow or respective owner

Related posts about c#

Related posts about web