HttpWebResponse抛出异常时间

时间:2013-01-15 11:55:01

标签: c# asp.net httpwebrequest forms-authentication

我正在尝试验证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”;“; )并重新开始,这种情况发生了很多次,超时异常发生。

2 个答案:

答案 0 :(得分:2)

首先 - 不清楚为什么url的定义如下:

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

这不是有效的网址。但如果你有

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

您正在向您所在的同一页面发出请求。所以基本上,您只需生成一个循环。您从浏览器调用您的页面,它使用webrequest调用自己,并再次调用自己。因此在VS调试器中会显示它回到第一行 尝试简单地更改网址定义,如下所示:

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

如果你这样做,它应该可以正常工作。基本上,据我所知,你只是使用错误的URL创建类似循环的东西(甚至更好地说:长链调用)

答案 1 :(得分:0)

尝试从HttpContext行中取出引号:

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

您要求提供文字URI地址“HttpContext.Current.Request.Url.AbsoluteUri”,而不是变量HttpContext.Current.Request.Url.AbsoluteUri中包含的实际绝对URI“http://domain.com/”。