Я пытаюсь использовать прямой прокси-сервер (Apache Traffic Server или Squid) на своем локальном компьютере в качестве локального кеша HTTP для вызовов cURL.Заставить cURL использовать GET для прокси-сервера для запросов HTTP
Я настроил прокси, используя:
curl_setopt($ch, CURLOPT_PROXY, 'http://localhost:8080');
Когда я запрашиваю вебсайт HTTP, локон выполняет стандартный HTTP GET
запрос прокси, который может быть кэшированные правильно:
GET http://example.com/ HTTP/1.1
Однако , при запросе веб-сайта HTTPs cURL вместо этого выполняет CONNECT
, эффективно используя прокси-сервер в качестве туннеля TCP и предотвращая его кеширование ответа:
CONNECT example.com:80 HTTP/1.1
Есть ли способ заставить cURL выполнить запрос GET
даже для веб-сайтов HTTP?
Я могу понять обоснование использования туннеля TCP для HTTP-запросов через прокси-сервер HTTP для обеспечения безопасности, но поскольку мой прокси-сервер находится на локальном хосте, мне все равно, если вы используете небезопасное HTTP-соединение с прокси-сервером и как Curl выполнить GET
запрос:
GET https://example.com/ HTTP/1.1
Я попытался с помощью:
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, false);
Но это ничего не изменило.
нет хорошего пути вокруг него AFAIK; вам нужен поддельный SSL-сертификат и прокси-сервер интеллектуального перехвата (SOCKS?), которые заменяют собственный ssl целевого сайта на свой собственный. Например, прокси-сервер Fiddler на telerik.com/fiddler – hanshenrik
и вы проверили 'curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, false);' option? ;) –