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 ਕੰਮ ਕਰ ਰਿਹਾ ਹੈ ਮੰਨਣ ਤੋਂ ਪਹਿਲਾਂ ਐਪ ਦਾ ਹੈਂਡਲਰ ਵੇਖੋ।

ਕੁੱਲ 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 ਤੋਂ ਆਪ ਨਕਲ ਨਹੀਂ ਕਰਦਾ। ਖਾਲੀ ਸੂਚੀ ਵੱਖਰੀ ਪ੍ਰਾਕਸੀ ਜਾਂਚ ਲਈ ਲਾਭਕਾਰੀ ਹੈ। ਐਪ ਵਿੱਚ ਇਰਾਦੇ ਵਾਲੇ ਬਾਈਪਾਸ ਨਿਯਮ ਹੋਣ ਤਾਂ ਸਪਸ਼ਟ ਸੰਭਾਲੋ।

ਸੰਬੰਧਿਤ ਲੇਖ