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 માંથી આપોઆપ નકલ કરતું નથી. ખાલી યાદી અલગ પ્રોક્સી પરીક્ષણ માટે ઉપયોગી છે. એપમાં ઇરાદાપૂર્વકના બાયપાસ નિયમો હોય તો સ્પષ્ટ રીતે જાળવો.