Solved

Error: "Unable to connect to the remote server" when using GetResponse or EndGetResponse

Posted on 2004-03-29
9
1,416 Views
Last Modified: 2010-08-05
Hi,

the title says it all really - I'm certain the code's right, after scouring the internet for hours trying to solve this, but I can't get away from the error.
I'm basically trying to save a webpage to file, given a url.
So is it something to do with my internet setup or firewall?
Incidentally, when I try to add a web reference in visual studio, it gives the same error but still brings the webpage up.

Any ideas? Cheers all.
0
Comment
Question by:shifty_mc
  • 5
  • 4
9 Comments
 
LVL 12

Expert Comment

by:dfiala13
ID: 10710500
Post your code. It could be a firewall issue, but if you are accessing the Internet otherwise it is unlikely.
0
 

Author Comment

by:shifty_mc
ID: 10710603
ok...

public Browser()
{
      Uri url = new Uri("http://www.radiotimes.com/tv/now.html");
      HttpWebRequest wr = (HttpWebRequest) WebRequest.Create(url);            
      AsyncCallback a = new AsyncCallback(OnComplete);
      IAsyncResult r = (IAsyncResult) wr.BeginGetResponse(a,wr);
}

static void OnComplete(IAsyncResult ar)
{
      
      HttpWebRequest r = (HttpWebRequest) ar.AsyncState;
      HttpWebResponse re = (HttpWebResponse) r.EndGetResponse(ar);                        
      Stream str = re.GetResponseStream();
      Byte[] inBuf = new Byte[500000];
                int bytesToRead = (int) inBuf.Length;
      int bytesRead = 0;
      while (bytesToRead > 0)
      {
            int n = str.Read(inBuf, bytesRead,bytesToRead);
                      if (n==0)
            break;
            bytesRead += n;
            bytesToRead -= n;
      }
      FileStream fstr = new FileStream("C:\\webpagetest.html", FileMode.Create,FileAccess.Write);
      fstr.Write(inBuf, 0, bytesRead);
      str.Close();
      fstr.Close();            
}

The error occurs in the line
HttpWebResponse re = (HttpWebResponse) r.EndGetResponse(ar);
I've also tried it synchronously, with GetResponse, and get the same error.
Thanks.
0
 
LVL 12

Expert Comment

by:dfiala13
ID: 10710697
I think the problem is that you are never starting the communication.  Here's a snippet I wrote for a scraper.  It's snychronous and it uses a string URL as opposed to creating a Uri object.

Try this and see if it works (works for me), then we will at least know if it is a code problem or not.

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sURL);
req.KeepAlive = false;
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream(),true);
string s = sr.ReadToEnd();
res.Close();
0
 

Author Comment

by:shifty_mc
ID: 10710761
yeah, still get the error in
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 

Author Comment

by:shifty_mc
ID: 10710823
Ahh, I've got it - I was connecting to the internet through a proxy which was causing the problem.
When I turned that off it worked fine.
But how would I use this code when working with proxies and so on - ideally I'd be able to check the connection on a user's computer and adjust the connection appropriately?
0
 
LVL 12

Expert Comment

by:dfiala13
ID: 10710876
Ah, a proxy!  There is a class for working with that and a little code to tell your app to use a proxy.

http://support.microsoft.com/default.aspx?scid=kb;en-us;307023
0
 
LVL 12

Accepted Solution

by:
dfiala13 earned 250 total points
ID: 10710885
You can add a test function that tries to connect to a well known and ususally up URL (http://www.microsoft.com).  If it fails you can switch over to the proxy code and possibly prompt the user for proxy info.
0
 

Author Comment

by:shifty_mc
ID: 10710931
ok, I'll give it a go,
thanks for your help.
0
 
LVL 12

Expert Comment

by:dfiala13
ID: 10710957
You're welcome.  Glad you got it working.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Problem with SqlConnection 4 160
XML & .net 5 41
Syntax Error 2 46
how can i get the executable application's path in a specific form? ('\\' instead of '\ ') 5 30
Performance in games development is paramount: every microsecond counts to be able to do everything in less than 33ms (aiming at 16ms). C# foreach statement is one of the worst performance killers, and here I explain why.
This article aims to explain the working of CircularLogArchiver. This tool was designed to solve the buildup of log file in cases where systems do not support circular logging or where circular logging is not enabled
In this video I am going to show you how to back up and restore Office 365 mailboxes using CodeTwo Backup for Office 365. Learn more about the tool used in this video here: http://www.codetwo.com/backup-for-office-365/ (http://www.codetwo.com/ba…
Many functions in Excel can make decisions. The most simple of these is the IF function: it returns a value depending on whether a condition you describe is true or false. Once you get the hang of using the IF function, you will find it easier to us…

920 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now