Отладка HTTPS-трафика с помощью Fiddler в эмуляторе Windows Phone

#fiddler #windows-phone-7-emulator

#скрипач #windows-phone-7-emulator

Вопрос:

Я последовал совету Эрика, и он работает нормально, за исключением того, что запросы, использующие https через HttpWebRequest, не удается подключиться. В Fiddler я вижу запрос на подключение, который, кажется, возвращает нормально, а затем мой HttpWebRequest получает результат с ArgumentNullException.

Вот стек вызовов исключения:

    at System.IO.StringReader..ctor(String s)
   at System.Net.Browser.HttpWebRequestHelper.ParseHeaders(Uri requestUri, SecurityCriticalDataForMultipleGetAndSet`1 headers, WebHeaderCollection collection, Boolean removeHttpOnlyCookies, HttpStatusCodeamp; status, Stringamp; 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)
  

Браузер работает нормально, я предполагаю, что это какая-то проблема между.Сеть на телефоне и прокси-сервер Fiddler. Кстати, то же самое происходит на реальном телефоне и даже на iPad (что означает, что это не так .Проблема, связанная с сетью)

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

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

Комментарии:

1. Я не пробовал никакого HTTPS-кодирования с WP7, но может ли это быть проблемой с сертификатом? msdn.microsoft.com/en-us/library/gg521150(v=VS.92).aspx

2. Может быть, но в WP7 нет ServicePointManager, который пропускал бы ошибки сертификата…

3. ошибка… какой аргумент в данном случае равен null? И как именно вы добиваетесь этого на IPAD?

4. Я не могу сказать, какой аргумент равен null — ответ содержит исключение, и одним из свойств (которое имеет строковый тип) в exception является этот стек.

5. На iPad у нас есть такое же приложение, написанное на obj-c. На iPad мы назначили прокси-сервер прокси-серверу Fiddler, и хотя с трафиком браузера, включая HTTPS, проблем нет, приложение не получает ответа при попытке доступа к URL-адресу авторизации. Возможно, это привязано к определенному бэкэнду — нужно попробовать другой HTTPS…

Ответ №1:

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

Комментарии:

1. Проблема также может заключаться в «устаревшем» наборе сертификатов fiddler на вашем локальном компьютере — удалите и повторно добавьте их из настроек HTTPS Fiddler.

2. Фантастика! На веб-сайте fiddler создалось впечатление, что это невозможно!