J'utilise le logiciel Charles Web Debugging Proxy pour déboguer les requêtes HTTP. Cela fonctionne très bien avec mes navigateurs de bureau, Chrome et Firefox, et il voit même les requêtes HTTP que d'autres programmes font.
Lorsque j'exécute Charles et vérifie la configuration réseau, je pense comprendre comment cela fonctionne - il configure simplement un proxy pour toutes les requêtes HTTP et HTTPS, puis les écoute sur le port 8888:
Toutefois , le point que je ne peux pas comprendre que je ne vois pas de demandes que j'Initier au terminal, comme wget
, curl
ou le elinks
navigateur.
Je sais que je peux spécifier le proxy avec curl et wget en utilisant 127.0.0.1:8888, mais je ne comprends pas si l'interface réseau est configurée avec un proxy dans la configuration pourquoi je devrais spécifier manuellement le proxy pour eux .
De plus, je n'arrive pas à faire apparaître BlueCrab (copieur de site Web) dans Charles - et je ne vois pas de paramètre de proxy pour cela - bien que je pense qu'il utilise un wrapper XWindow ou quelque chose (donc ce n'est pas vraiment un natif Application Cocoa / Carbon):
Comment puis-je faire en sorte que toutes les requêtes HTTP de mon système passent par Charles?
Clarification
Ma question porte sur les principes fondamentaux du système de pourquoi boucle et wget n'utiliser un proxy lorsque l'interface réseau a été configuré pour utiliser un plus que poser des questions sur la syntaxe correcte pour curl
, wget
etc.
wget derrière proxy (vous devrez peut-être créer le fichier rc) source
Ajoutez la ligne suivante:
se courber derrière la source proxy
Ajoutez la ligne suivante:
liens derrière la source proxy
Trouvez votre
elinks.conf
dossier avec:Ajoutez la ligne suivante:
Pas sûr de BlueCrab
la source
La raison pour laquelle vous n'obtenez pas uniquement le proxy de toutes les requêtes HTTP est qu'au niveau du système d'exploitation , il n'existe pas de "requête HTTP"; il n'y a que des connexions TCP. Contacter un proxy HTTP signifie modifier légèrement la requête HTTP ainsi que contacter le serveur proxy au lieu de l'hôte nommé dans l'URL, donc cela doit être fait dans le code qui implémente l'envoi de requêtes HTTP.
curl et wget ont leur propre code HTTP, qui utilise leurs propres fichiers de configuration - ils n'ont pas été programmés pour rechercher les paramètres de proxy où Mac OS X les conserve, ni n'utilisent les bibliothèques HTTP fournies avec Mac OS X qui utilisent ces proxy paramètres.
la source
Si vous ne voulez pas toucher vos fichiers de configuration, en utilisant curl vous pouvez faire:
curl http://example.com --proxy 127.0.0.1:8888
la source