5 votes

Déboguer le trafic HTTPS avec Fiddler sur l'émulateur Windows Phone

J'ai suivi les conseils d'Eric et ça fonctionne bien, à l'exception des requêtes en utilisant https à travers HttpWebRequest qui échouent à se connecter. Dans Fiddler, je vois une requête de connexion qui semble retourner correctement, puis mon HttpWebRequest reçoit un résultat avec une ArgumentNullException.

Voici la pile d'appels de l'exception :

   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)

Le navigateur fonctionne bien, je présume qu'il s'agit d'un type de problème entre .Net sur le téléphone et le proxy de Fiddler. Au fait, la même chose se produit sur le téléphone réel et même sur l'IPad (ce qui signifie que ce n'est pas un problème spécifique à .Net)

Est-ce que cela peut être corrigé ?

EDIT : Je suis probablement confronté à certaines restrictions de sécurité que je ne comprends pas. J'ai essayé https://wellsfargo.com et https://mail.google.com et les deux retournent une exception "Non trouvé" lors de l'utilisation de Fiddler.

11voto

Jonas Stawski Points 2611

Vous devez installer le certificat Racine de Fiddler dans l'émulateur. Ouvrez Mobile IE et naviguez vers : http://computername:8888/fiddlerroot.cer. Lorsqu'on vous le demande, installez le certificat. Une fois que vous aurez terminé, le trafic HTTPS passera par Fiddler sans problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X