5

我遵循了Eric 的建议,它工作正常,但通过 HttpWebRequest 使用 https 的请求无法连接。在 Fiddler 中,我看到一个似乎返回正常的 Connect 请求,然后我的 HttpWebRequest 收到带有 ArgumentNullException 的结果。

这是异常的调用堆栈:

   at System.IO.StringReader..ctor(String s)
   at System.Net.Browser.HttpWebRequestHelper.ParseHeaders(Uri requestUri, SecurityCriticalDataForMultipleGetAndSet`1 headers, WebHeaderCollection collection, Boolean removeHttpOnlyCookies, HttpStatusCode& status, String& statusDescription)
   at System.Net.Browser.ClientHttpWebResponse..ctor(String method, Uri url, HttpStatusCode status, String mime, SecurityCriticalDataForMultipleGetAndSet`1 headersString, Stream stream, Int32 expectedLen, CookieContainer cookieContainer)
   at System.Net.Browser.ClientHttpWebResponse..ctor(String method, Uri url, HttpStatusCode status, String mime, SecurityCriticalDataForMultipleGetAndSet`1 headersString, Stream stream, CookieContainer cookieContainer)
   at System.Net.Browser.ClientHttpWebRequest.Failed(Object sender, EventArgs e)
   at MS.Internal.InternalWebRequest.OnDownloadFailed(Object sender, ErrorEventArgs args)
   at System.Windows.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args)
   at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, String eventName)

浏览器工作正常,我猜这是手机上的 .Net 和 Fiddler 代理之间的某种问题。顺便说一句,在真正的手机甚至 iPad 上也会发生同样的事情(这意味着这不是 .Net 特定的问题)

可以修复吗?

编辑:我可能反对一些我不理解的安全限制。我尝试了https://wellsfargo.comhttps://mail.google.com并且在使用 Fiddler 时都返回“未找到”异常。

4

1 回答 1

11

您必须将 Fiddler 的根证书安装到模拟器中。打开 Mobile IE 并浏览到:http://computername:8888/fiddlerroot.cer。出现提示时,安装证书。完成后,HTTPS 流量将毫无问题地通过 fiddler。

于 2011-12-23T04:46:33.193 回答