Guzzle üzerinden Proxy kullanımı

Ali Orhun Akkirman - Mar 29 '23 - - Dev Community

Guzzle üzerinden Proxy kullanmak için 2 yöntem bulunmaktadır. Guzzle kendi belgelendirmesinde belirttiği gibi BASH üzerinden tanımlanmış ortam değişkenlerine uyumluluk göstermektedir. Diğeri ise yazılım üzerinden proxy ayarının eklenebilmesidir.

Ortam değişkenleri ile proxy ayarı

Bu çalışma için sistem genelinde bash ortam değişkenlerini ekleyebilmek için /etc/environment dosyası içerisinde yeni satır olarak aşağıdaki satırlar eklenmelidir.

Tabi ki http ve https adresinde yer alan kullanıcı adı ve parola bilgileri ile IPADRESİ ve PORT bilgisi istenildiği şekilde düzenlenmelidir.

export http_proxy="http://kullaniciadi:parola@IPADRESI:PORT"
export https_proxy="http://kullaniciadi:parola@IPADRESI:PORT"
Enter fullscreen mode Exit fullscreen mode

Bu satırlar eklentikten sonra çalışan servisler etkilenmeyecektir, çünkü servisler eski ortam değişkenleri ile ayağa kalkmıştır. Dolayısıyla en kestirme çözüm işletim sisteminin yeniden başlatılması olacaktır.

Yazılım üzerinden proxy ayarı

Bu ayar hardcoded olarak eklenmesi doğru olmayacağı için değiştirilebilir yapıda yazılımsal geliştirme gerekecektir.

Bunun için örnek bir proxy ayarı içeren kod aşağıdaki gibidir.

Tabi ki http ve https adresinde yer alan kullanıcı adı ve parola bilgileri ile IPADRESİ ve PORT bilgisi istenildiği şekilde düzenlenmelidir.

use GuzzleHttp\Client;

$client = new Client([
    "proxy" => [
        'http' => 'http://kullaniciadi:parola@IPADRESI:PORT',
        'https' => 'http://kullaniciadi:parola@IPADRESI:PORT'
    ],
    'verify' => false
]);

$response = $client->get('https://api.ornek.org/?format=json');

echo $response->getBody();
Enter fullscreen mode Exit fullscreen mode
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .