1

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

4

2 回答 2

2

首先 - 不清楚为什么 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,它会创建类似循环的东西(或者更好地说:长链调用)

于 2013-01-15T12:03:08.590 回答
0

尝试取消引号HttpContext

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

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

于 2013-01-15T11:57:25.513 回答