Guzzle अनुरोधका लागि प्रोक्सी IP सेट गर्नुहोस्
Guzzle को प्रति-अनुरोध proxy विकल्प, ह्यान्डलरमा निर्भर जडान समयसीमा र स्पष्ट बाइपास सूचीको व्यवहार बुझ्नुहोस्।
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 बाट आफैँ प्रतिलिपि गर्दैन। खाली सूची अलग प्रोक्सी परीक्षणका लागि उपयोगी हुन्छ। एपमा जानाजानका बाइपास नियम छन् भने स्पष्ट राख्नुहोस्।