जब आप Guzzle क्लाइंट का हैंडलर जानबूझकर चुनते हैं, तो cURL आधारित स्टैक SOCKS का उपयोग कर सकता है:

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

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

socks5h प्रॉक्सी से गंतव्य नाम हल करने को कहता है। Guzzle एंडपॉइंट libcurl को देता है, इसलिए लोड किए गए libcurl बिल्ड को उस प्रोटोकॉल का समर्थन करना चाहिए। SOCKS5 प्रॉक्सी सूची क्लाइंट प्रॉक्सी URL के लिए सार्वजनिक एंडपॉइंट उम्मीदवार प्रदान करती है।

यदि एप्लिकेशन के पास पहले से हैंडलर स्टैक है, तो उसे बदलने और मिडलवेयर खोने से पहले उसके अंतर्निहित ट्रांसपोर्ट की जाँच करें। केवल PHP HTTP स्ट्रीम तक सीमित हैंडलर केवल इसलिए SOCKS लागू नहीं कर सकता कि क्लाइंट को यह विकल्प मिलता है।

अनुरोध करने वाली प्रक्रिया जाँचें। CLI PHP और PHP-FPM अलग-अलग कॉन्फ़िगरेशन फ़ाइलें और एक्सटेंशन लोड कर सकते हैं; एक में cURL होना दूसरे में उसकी उपलब्धता सिद्ध नहीं करता।

संबंधित लेख