0

我正在向 google.com 发出 http 请求。这就是我这样做的方式:

    HttpTestWebRequest = (HttpWebRequest)System.Net.WebRequest.Create("http://www.google.com/");
    HttpTestWebRequest.Method = "GET";
    HttpTestWebRequest.BeginGetResponse(GetHttpTestResponse, HttpTestWebRequest);

...

private void GetHttpTestResponse(IAsyncResult asynchronousResult)
{
    var webRequest = (HttpWebRequest)asynchronousResult.AsyncState;
    WebResponse response =((HttpWebRequest)asynchronousResult.AsyncState).EndGetResponse(asynchronousResult);
    ...
}

使用提琴手,它给了我一个 http 302 移动状态码,但在应用程序中它会抛出一个异常并且不会重定向到网站的新位置。

任何想法为什么会发生这种情况?

更新 1

我得到一个NullReferenceException.

堆栈跟踪是:

在 System.Net.Browser.HttpWebRequestHelper.RemoveHttpOnlyCookies(Uri requestUri, String setCookieHeaderValue)
在 System.Net.Browser.HttpWebRequestHelper.ParseHeaders(Uri requestUri, SecurityCriticalDataForMultipleGetAndSet`1 标头, WebHeaderCollection 集合, Boolean removeHttpOnlyCookies, HttpStatusCode& status, String& statusDescription)
在系统.Net.Browser.ClientHttpWebRequest.Progress(Object sender, EventArgs e)
at MS.Internal.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args)
at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs , Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName)

4

2 回答 2

0

着陆页 (http://www.google.com) 上似乎有一些特定的 HTTP 标头(谷歌似乎发送了一些重复的 cookie 标头),这导致了这种情况!其他网站/页面似乎加载正常。

于 2012-07-17T18:42:50.263 回答
0

尝试设置HttpTestWebRequest.AllowAutoRedirect = true;

于 2012-06-28T02:55:58.540 回答