我正在向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)
答案 0 :(得分:0)
尝试设置HttpTestWebRequest.AllowAutoRedirect = true;
答案 1 :(得分:0)
在目标网页(http://www.google.com)上似乎有一些特定的HTTP标头(谷歌似乎发送了一些重复的Cookie标头),这导致了这一点!其他网站/网页似乎加载确定。