Når du velger handleren til en Guzzle-klient med vilje, kan en cURL-basert stabel bruke SOCKS:

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

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

socks5h ber proxyen løse opp destinasjonsnavnet. Guzzle gir endepunktet videre til libcurl, så libcurl-bygget som er lastet, må støtte den protokollen. SOCKS5-proxylisten tilbyr offentlige endepunktkandidater for klientens proxy-URL.

Hvis applikasjonen allerede eier en handlerstabel, bør du undersøke transporten under den før du bytter den ut og mister middleware. En handler som er begrenset til PHP HTTP-strømmer, kan ikke implementere SOCKS bare fordi klienten mottar dette valget.

Sjekk prosessen som utfører forespørselen. CLI PHP og PHP-FPM kan laste forskjellige konfigurasjonsfiler og utvidelser; at cURL finnes i den ene, beviser ikke at det er tilgjengelig i den andre.

Relaterte artikler