Ustawianie uwierzytelnionego adresu URL proxy w Symfony CurlHttpClient
Zakoduj składniki konta proxy i pozostaw jawne: miejsce docelowe API, wyjątki no_proxy oraz wybór transportu.
$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 dotyczy nazwę użytkownika i hasło osobno. Zakodowanie całego adresu URL zakodowałoby także separatory schematu i autorytetu potrzebne do znalezienia nasłuchiwacza.
Proxy HTTP przenosi połączenie HTTPS API przez CONNECT. Konto proxy nie zastępuje uwierzytelniania API, a wymuszanie http_version na 2.0 nie jest potrzebne do logowania przez proxy.
Lista no_proxy oddzielona przecinkami wybiera zamierzone hosty bezpośrednie. Bez jawnych opcji komponent może zamiast tego użyć obsługiwanych ustawień środowiska.
Tworzy to CurlHttpClient bezpośrednio, co wymaga transportu cURL w PHP. Ogólna fabryka Symfony może wybrać inny backend. W przypadku utrzymującego się odrzucenia zidentyfikuj wybrany transport i zachowaj błąd etapu proxy zamiast przenosić konto do nagłówka Authorization miejsca docelowego.