När du medvetet väljer hanteraren för en Guzzle-klient kan en cURL-baserad stapel använda SOCKS:

$stack = \GuzzleHttp\HandlerStack::create(
    new \GuzzleHttp\Handler\CurlHandler()
);

$client = new \GuzzleHttp\Client([
    'handler' => $stack,
    'proxy' => 'socks5h://proxy.example.net:1080',
]);

socks5h ber proxyn att slå upp destinationsnamnet. Guzzle skickar vidare slutpunkten till libcurl, så den inlästa libcurl-versionen måste stödja det protokollet. SOCKS5-proxylistan tillhandahåller offentliga slutpunktskandidater för klientens proxy-URL.

Om programmet redan har en hanterarstapel, undersök den underliggande transporten innan du ersätter den och förlorar middleware. En hanterare begränsad till PHP HTTP-strömmar kan inte implementera SOCKS bara för att klienten får det här alternativet.

Kontrollera processen som gör begäran. CLI PHP och PHP-FPM kan läsa in olika konfigurationsfiler och tillägg; att cURL finns i den ena bevisar inte att det är tillgängligt i den andra.

Relaterade artiklar