HttpWebResponse抛出超时异常

本文关键字:异常 超时 HttpWebResponse | 更新日期: 2023-09-27 17:53:07

我正在尝试验证HttpWebRequest。我的代码是这样的

 string url = "http://mydomain.com";
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
    HttpCookie cookie = HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName];
    req.Headers[HttpRequestHeader.Cookie] = string.Format("{0}={1}", cookie.Name, cookie.Value);
    WebResponse res = req.GetResponse();

一切正常,直到最后一行执行(WebResponse res = req.GetResponse();)。当最后一行执行代码执行返回到第一行(string url = "string url = "http://mydomain.com";";)并重新开始时,这种情况发生了很多次,导致超时异常发生。

HttpWebResponse抛出超时异常

首先-不清楚为什么url是这样定义的:

string url = "HttpContext.Current.Request.Url.AbsoluteUri";

这不是一个有效的URL。但是如果你有

string url = HttpContext.Current.Request.Url.AbsoluteUri;

那么您正在生成对您所在的同一页面的请求。所以基本上,你只要产生一个循环。你从浏览器中调用你的页面,它使用webrequest调用自己,然后再次调用自己。所以在VS调试器会显示你喜欢它回到第一行。
尝试简单地改变url定义,如下所示:

string url = "http://wwww.google.com";

如果你这样做,它应该工作得很好。基本上,据我所知,您只是使用错误的URL,它创建了类似循环的东西(或者更好地说:长链调用)

试着去掉HttpContext行中的引号:

string url = HttpContext.Current.Request.Url.AbsoluteUri;

你正在请求URI地址"HttpContext.Current.Request.Url"。绝对URI ",而不是包含在变量HttpContext.Current.Request.Url.AbsoluteUri中的实际绝对URI "http://domain.com/"。