Отладка HTTPS-трафика с помощью Fiddler в эмуляторе Windows Phone - PullRequest
5 голосов
/ 09 июня 2011

Я следовал совету Эрика , и он отлично работает, за исключением того, что запросы, использующие 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. Кстати, то же самое происходит на реальном телефоне и даже на IPad (что означает, что это не проблема .Net)

Можно ли это исправить?

РЕДАКТИРОВАТЬ: Я, вероятно, против некоторых ограничений безопасности, которые я не понимаю. Я попытался https://wellsfargo.com и https://mail.google.com, и оба возвращают исключение "Не найдено" при использовании Fiddler.

1 Ответ

11 голосов
/ 23 декабря 2011

Вы должны установить Root Cert Fiddler в эмулятор.Откройте Mobile IE и перейдите к: http://computername:8888/fiddlerroot.cer. При появлении запроса установите сертификат.После того, как вы закончите, HTTPS-трафик будет проходить через фиддлер без проблем.

...