在Windows Phone模拟器上使用Fiddler调试HTTPS流量

时间:2011-06-08 20:45:19

标签: fiddler windows-phone-7-emulator

我已经关注Eric's advice并且工作正常,但使用https通过HttpWebRequest的请求无法连接。在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代理之间的某种问题。 BTW,同样的事情发生在真正的手机甚至iPad上(这意味着这不是.Net特定的问题)

可以修复吗?

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

1 个答案:

答案 0 :(得分:11)

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