Պրոքսի IP-ի սահմանում Guzzle հարցման համար
Օգտագործեք 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();
Օրինակը ենթադրում է Composer-ով տեղադրված Guzzle 7։ Փաստաթղթային հասցեն փոխարինեք մատակարարի կամ 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-ից ինքնաբերաբար պատճենելու փոխարեն։ Դատարկ ցանկը օգտակար է մեկուսացված պրոքսի փորձարկման համար։ Եթե ծրագիրն ունի դիտավորյալ շրջանցման կանոններ, պահեք դրանք բացահայտ։