Symfony CurlHttpClient의 인증된 프록시 URL 설정
프록시 계정 구성 요소를 인코딩하고 API 대상, no_proxy 예외 및 전송 선택을 명시적으로 유지하세요.
$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 프록시는 CONNECT를 통해 HTTPS API 연결을 전달합니다. 프록시 계정은 API 인증을 대체하지 않으며, 프록시 로그인을 위해 http_version을(를) 2.0으로 강제할 필요는 없습니다.
쉼표로 구분된 no_proxy 목록은 의도한 직접 호스트를 선택합니다. 명시적 옵션이 없으면 구성 요소는 대신 지원되는 환경 설정을 사용할 수 있습니다.
이것은 CurlHttpClient을(를) 직접 생성하므로 PHP의 cURL 전송이 필요합니다. Symfony의 일반 팩토리는 다른 백엔드를 선택할 수 있습니다. 거부가 남아 있으면 선택된 전송을 식별하고, 계정을 대상 Authorization 헤더로 옮기는 대신 프록시 단계의 오류를 유지하세요.