$proxy = 'http://'
    . rawurlencode($proxyUser) . ':'
    . rawurlencode($proxyPassword)
    . '@proxy.example:8080';

$client = new \Symfony\Component\HttpClient\CurlHttpClient([
    'proxy' => $proxy,
    'no_proxy' => 'localhost,internal.example',
]);
$response = $client->request('GET', 'https://api.example/items');
$status = $response->getStatusCode();

rawurlencode կիրառվում է օգտանունը և գաղտնաբառը առանձին-ի նկատմամբ։ Ամբողջ URL-ի կոդավորումը կկոդավորեր նաև սխեմայի և հեղինակության բաժանիչները, որոնք անհրաժեշտ են լսողին գտնելու համար։

HTTP proxy-ն HTTPS API կապը փոխանցում է CONNECT-ի միջոցով։ Proxy հաշիվը չի փոխարինում API նույնականացմանը, և proxy մուտքի համար պարտադիր չէ http_version-ը դարձնել 2.0։

Ստորակետերով բաժանված no_proxy ցանկն ընտրում է նախատեսված ուղիղ հոսթերը։ Առանց բացահայտ ընտրանքների՝ բաղադրիչը կարող է փոխարենը օգտագործել իր աջակցվող միջավայրի կարգավորումները։

Սա ուղղակիորեն կառուցում է CurlHttpClient, ինչը պահանջում է PHP-ի cURL փոխադրումը։ Symfony-ի ընդհանուր ֆաբրիկան կարող է ընտրել այլ backend։ Մնացած մերժման դեպքում նույնացրեք այդ ընտրված փոխադրումը և պահպանեք proxy փուլի սխալը՝ հաշիվը նպատակակետ Authorization վերնագրի մեջ տեղափոխելու փոխարեն։

Առնչվող հոդվածներ