Guzzle တောင်းဆိုမှုအတွက် ပရောက်စီ IP သတ်မှတ်ခြင်း
Guzzle ၏ တောင်းဆိုမှုတစ်ခုချင်း proxy ရွေးချယ်မှု၊ handler အလိုက်ချိတ်ဆက်အချိန်နှင့် ကိုယ်တိုင်သတ်မှတ်ရသောကျော်လွှားစာရင်းကို နားလည်ပါ။
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();
နမူနာသည် Composer ဖြင့် Guzzle 7 တပ်ထားသည်ဟုယူဆသည်။ စာတမ်းလိပ်စာကို ပေးသူထံမှ သို့မဟုတ် HTTP proxy စာရင်းမှ တကယ့် HTTP ပရောက်စီဖြင့် အစားထိုးပါ။ ရည်မှန်းနေရာကို တောင်းဆိုမှု URL တွင်ထားပါ။ ပရောက်စီသည် ကြားခံသာဖြစ်ပြီး ဒေါင်းလုဒ်လုပ်သည့်အရာမဟုတ်ပါ။
ဤနေရာတွင် http_errors သည် false ဖြစ်၍ HTTP အမှားအဖြေကို စစ်ဆေးနိုင်သေးသည်။ ချိတ်ဆက်မှုမအောင်မြင်လျှင် လွှဲပြောင်းခြွင်းချက်များ ပစ်ထုတ်ဆဲဖြစ်သည်။ ထို့ကြောင့် တည်ဆောက်စဉ်ငြင်းပယ်ခံရသော HTTPS တန်နယ် သည် ပုံမှန်ဝက်ဘ်ဆိုက်အဖြေအရာဝတ္ထု မရမီ ပျက်ကွက်နိုင်သည်။
ချိတ်ဆက်ကန့်သတ်ချက် မတူလျှင် handler စစ်ပါ
Guzzle သည် HTTP handler မတူသောမျိုးကို သုံးနိုင်သည်။ စာတမ်းအရ ပါဝင်ပြီး cURL handler က connect_timeout ကိုပံ့ပိုးသည်။ ကိုယ်ပိုင် handler သို့မဟုတ် PHP cURL မပါဝင်သောပတ်ဝန်းကျင်သည် တူညီမည်မဟုတ်ပါ။ ကူးထားသော timeout ရွေးချယ်မှု အကျိုးသက်ရောက်နေသည်ဟု မယူဆမီ အက်ပ် handler ကိုစစ်ပါ။
စုစုပေါင်း timeout ကိုလည်း သတ်မှတ်သင့်သည်။ အခမဲ့စာရင်းမှတ်တမ်းများသည် စစ်ဆေးမှုကြားတွင် အဖြေရပ်နိုင်ပြီး မူလတန်ဖိုးက မြန်မြန်ပြီးရမည့်တောင်းဆိုမှုအတွက် အသုံးဝင်သော နောက်ဆုံးချိန်မဟုတ်ပါ။
ပရောက်စီမြေပုံသုံးခြင်း
မြေပုံဖြင့် ရည်မှန်းနေရာ၏ scheme အလိုက်လမ်းရွေးပြီး ကျော်လွှားမည့်ဟို့စ်များကို အတိအကျထည့်နိုင်သည်။
'proxy' => [
'http' => 'http://203.0.113.10:8080',
'https' => 'http://203.0.113.10:8080',
'no' => [],
],
စာသားရွေးချယ်မှုအစား ဤ array ကိုသုံးပါ။ HTTPS သော့က HTTPS ရည်မှန်းနေရာရွေးသည်။ ၎င်း၏ HTTP တန်ဖိုးက ပရောက်စီနားထောင်သည့်ဘက် ကိုသာဖော်ပြဆဲဖြစ်သည်။ နားထောင်ပရိုတိုကောမတူလျှင် အဆုံးမှတ်သတ်မှတ်ချက်လည်း မတူရပါ။
တောင်းဆိုမှု proxy ရွေးချယ်မှုကို ကိုယ်တိုင်ပေးသည့်အခါ Guzzle သည် လိုအပ်သော no တန်ဖိုးများကိုလည်း ကိုယ်တိုင်ပေးရန်မျှော်လင့်သည်။ NO_PROXY မှအလိုအလျောက် မကူးပါ။ ဗလာစာရင်းသည် သီးခြားပရောက်စီစမ်းသပ်မှုအတွက် အသုံးဝင်သည်။ အက်ပ်၌ ရည်ရွယ်ထားသောကျော်လွှားစည်းမျဉ်းများရှိလျှင် ၎င်းတို့ကို အတိအကျထိန်းပါ။