http请求中的错误

时间:2012-06-27 16:44:58

标签: windows-phone-7 http http-status-code-302

我正在向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);
    ...
}

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

为什么会发生这种情况?

更新1

我得到NullReferenceException

堆栈跟踪是:

  

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

2 个答案:

答案 0 :(得分:0)

尝试设置HttpTestWebRequest.AllowAutoRedirect = true;

答案 1 :(得分:0)

在目标网页(http://www.google.com)上似乎有一些特定的HTTP标头(谷歌似乎发送了一些重复的Cookie标头),这导致了这一点!其他网站/网页似乎加载确定。