Wanneer u bewust de handler van een Guzzle-client kiest, kan een cURL-gebaseerde stack SOCKS gebruiken:

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

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

socks5h vraagt de proxy om de bestemmingsnaam op te lossen. Guzzle geeft het eindpunt door aan libcurl, dus de geladen libcurl-build moet dat protocol ondersteunen. De SOCKS5-proxylijst levert openbare eindpuntkandidaten voor de proxy-URL van de client.

Als de toepassing al een handlerstack heeft, onderzoek dan het onderliggende transport voordat u die vervangt en middleware verliest. Een handler die beperkt is tot PHP HTTP-stromen kan SOCKS niet implementeren alleen omdat de client deze optie ontvangt.

Controleer het proces dat het verzoek doet. CLI-PHP en PHP-FPM kunnen verschillende configuratiebestanden en extensies laden; dat cURL in de ene aanwezig is, bewijst niet dat het in de andere beschikbaar is.

Gerelateerde artikelen