2016-11-01 1 views
1

J'essaie d'obtenir des ressources du site Web en utilisant des classes simples HttpClient et HttpClientHandler. Quand j'utilise Http, cela fonctionne bien mais dans le cas de Https cela ne fonctionne pas. Le code suivant est mes paramètres:Fiddler ne capture pas les requêtes Https faites par HttpClient et HttpClientHandler

 var url="https://www.someurl.com"; 
     var proxy = new WebProxy("127.0.0.1", 8888); 
     WebRequest.DefaultWebProxy = proxy; 

     htmlHandler = new HttpClientHandler(); 

     htmlHandler.UseProxy = true; 
     htmlHandler.Proxy = proxy; 

I a également modifié les paramètres du fichier exe.config et il n'a pas fonctionné. Je devrais noter qu'une seule entrée dans fiddler a été montré: enter image description here

+0

Https utilise le transfert de port vers une adresse IP différente (adresse IP du serveur proxy). Vous avez probablement activé le filtrage, donc vous ne voyez pas toutes les données. – jdweng

+0

Si vous voulez dire que le filtrage de Fiddler est activé, Non, ce n'est pas le cas. Je ne filtre rien. – user3284331

+0

Avez-vous activé le décryptage HTTPS dans les options Fiddler? – Robert

Répondre

1

La ligne de tunnel dans l'image vous avez inclus une référence au site auquel le client .NET essaye d'envoyer le trafic? Ou est-ce sans rapport? (Qu'est-ce que la colonne Process?)

Que voyez-vous dans l'onglet LOG lorsque le trafic est envoyé à Fiddler?

L'explication la plus probable est que le certificat racine Fiddler n'est pas approuvé par le compte dans lequel s'exécute l'application client .NET. Fiddler vous permet de faire confiance au certificat Root Fiddler à l'échelle de l'ordinateur pour résoudre ces problèmes.