Guzzle चा proxy पर्याय पूर्ण एंडपॉइंट URL स्वीकारतो. फक्त त्या क्रियेने निवडलेला IP वापरावा असेल तर विनंतीवर सेट करा.

<?php
require __DIR__ . '/vendor/autoload.php';

$client = new GuzzleHttp\Client();
$response = $client->request('GET', 'https://example.com/', [
    'proxy' => 'http://203.0.113.10:8080',
    'connect_timeout' => 5,
    'timeout' => 15,
    'http_errors' => false,
]);

echo $response->getStatusCode(), PHP_EOL;
echo (string) $response->getBody();

उदाहरण Guzzle 7 Composer मधून स्थापित आहे असे मानते. दस्तऐवजी पत्ता प्रदाता किंवा HTTP प्रॉक्सी यादीतून प्रत्यक्ष HTTP प्रॉक्सीने बदला. लक्ष्य विनंतीच्या URL मध्ये ठेवा: प्रॉक्सी मध्यस्थ आहे, डाउनलोड होणारा स्रोत नाही.

इथे http_errors false आहे म्हणजे HTTP त्रुटीचा प्रतिसाद तपासणीसाठी उपलब्ध राहतो. जोडणीतील अपयश अजूनही हस्तांतरण अपवाद निर्माण करतात. त्यामुळे उभारणीदरम्यान नाकारलेला HTTPS टनेल सामान्य साइट प्रतिसादाचा ऑब्जेक्ट मिळण्यापूर्वीच अयशस्वी होऊ शकतो.

जोडणी मर्यादा वेगळे वागल्यास हँडलर तपासा

Guzzle वेगवेगळे HTTP हँडलर वापरू शकतो. दस्तऐवजानुसार अंगभूत cURL हँडलर connect_timeout समर्थित करतो. कस्टम हँडलर किंवा PHP cURL नसलेले वातावरण आवश्यकच समकक्ष नाही. नक्कल केलेली वेळमर्यादा कार्यरत आहे मानण्यापूर्वी ॲपचा हँडलर तपासा.

एकूण timeout देखील सेट करणे योग्य आहे. मोफत यादीतील नोंदी तपासण्यांदरम्यान उत्तर देणे थांबवू शकतात आणि पूर्वनियोजित मूल्य लवकर संपायला हवी अशा विनंतीची उपयुक्त अंतिम वेळ नाही.

प्रॉक्सी मॅप वापरणे

मॅप लक्ष्याच्या स्कीमनुसार मार्ग निवडू देतो आणि बायपास होस्ट स्पष्ट देऊ देतो:

'proxy' => [
    'http' => 'http://203.0.113.10:8080',
    'https' => 'http://203.0.113.10:8080',
    'no' => [],
],

स्ट्रिंग पर्यायाच्या जागी हा ॲरे वापरा. HTTPS की HTTPS लक्ष्य निवडते; तिचे HTTP मूल्य अजूनही प्रॉक्सी लिसनर दर्शवते. वेगळ्या लिसनर प्रोटोकॉलला वेगळे एंडपॉइंट कॉन्फिगरेशन लागते.

विनंतीचा proxy पर्याय स्वतः दिल्यास Guzzle अपेक्षित no मूल्येही तुमच्याकडून मागतो; NO_PROXY मधून आपोआप कॉपी करत नाही. रिकामी यादी वेगळ्या प्रॉक्सी चाचणीसाठी उपयोगी असते. ॲपमध्ये हेतुपूर्वक बायपास नियम असतील तर ते स्पष्ट जतन करा.

संबंधित लेख