Я использую программное обеспечение Charles Web Debugging Proxy для отладки HTTP-запросов. Он отлично работает с моими браузерами для настольных компьютеров, Chrome и Firefox, и даже видит запросы HTTP, которые делают другие программы.
Когда я запускаю Чарльза и проверяю конфигурацию сети, мне кажется, я понимаю, как это работает - он просто устанавливает прокси для всех запросов HTTP и HTTPS, а затем прослушивает их на порту 8888:
Однако я не могу понять, что не вижу никаких запросов, которые я инициирую в Терминале, таких как wget
, curl
, или elinks
браузер.
Я знаю, что могу указать прокси с помощью curl и wget, используя 127.0.0.1:8888, но я не понимаю, настроен ли сетевой интерфейс с прокси в конфигурации, почему мне нужно было бы вручную указать прокси для них ,
Также я не могу заставить BlueCrab (копир веб-сайта) отображаться в Чарльзе - и я не вижу настройки прокси для него - хотя я полагаю, что он использует оболочку XWindow или что-то в этом роде (так что на самом деле он не является нативным) Приложение Cocoa / Carbon):
Как я могу получить все запросы HTTP в моей системе для запуска через Чарльза?
осветление
Мой вопрос о системных основах того, почему curl и wget не будут использовать прокси, когда сетевой интерфейс настроен на использование еще одного, а не спрашивать о правильном синтаксисе для curl
, wget
, так далее.
Wget за прокси (возможно, вам придется создать файл RC) источник
Добавьте следующую строку:
свернуться за прокси источник
Добавьте следующую строку:
Elinks за прокси источник
Найди свой
elinks.conf
файл с:Добавьте следующую строку:
Не уверен насчет BlueCrab
источник
Причина Зачем вы не просто получаете прокси всех HTTP-запросов, потому что на операционная система уровень, нет такой вещи как «HTTP-запрос»; Есть только TCP соединения. Обращение к прокси-серверу HTTP означает незначительное изменение HTTP-запроса, а также обращение к прокси-серверу вместо хоста, указанного в URL-адресе, поэтому это должно быть сделано в коде, который реализует отправку HTTP-запросов.
curl и wget имеют свой собственный код HTTP, который использует свои собственные файлы конфигурации - они не были запрограммированы для поиска параметров прокси, где их хранит Mac OS X, и не используют библиотеки HTTP, поставляемые с Mac OS X, которые используют эти прокси настройки.
источник
Если вы не хотите трогать ваши файлы конфигурации, с помощью curl вы можете сделать:
curl http://example.com --proxy 127.0.0.1:8888
источник