WSDL 및 서비스 호출을 위한 PHP SoapClient 프록시 설정
자격 증명을 User-Agent에 주입하지 않고 WSDL 로드와 서비스 호출을 위한 PHP SoapClient 프록시 옵션을 구성합니다.
원격 WSDL 로드는 SoapClient 생성자 내부에서 발생할 수 있습니다. 그 첫 번째 가져오기 전에 프록시를 지정하십시오:
$client = new SoapClient('https://service.example.com/api?wsdl', [
'proxy_host' => '203.0.113.10',
'proxy_port' => 8080,
'proxy_login' => getenv('PROXY_USER'),
'proxy_password' => getenv('PROXY_PASSWORD'),
'connection_timeout' => 5,
'exceptions' => true,
]);실제 WSDL, 프록시 호스트/포트, 의도한 자격 증명 원본을 사용하십시오. 호스트 필드는 주소이고 포트는 별도입니다.
| 실패할 때 | 점검할 요청 또는 작업 |
|---|---|
| 클라이언트 생성 | WSDL 가져오기 또는 문서 처리. |
| 가져온 문서/스키마 처리 | 실제 추가 가져오기 URL. |
| SOAP 메서드 호출 | WSDL에 선언된 서비스 엔드포인트, 다른 호스트일 수 있습니다. |
캐시된 WSDL을 사용하는 작업자는 다른 머신에서 실패하는 요청을 건너뛸 수 있습니다. 캐시 구성과 실제 실패한 URL을 비교와 함께 보관하고, 생성 성공만으로 프록시를 변경하지 마십시오.
proxy_login/proxy_password 는 중개자 를 인증합니다. 대상 login/password 와 SOAP 수준 서비스 인증은 다른 계층을 담당합니다. 계정 같은 헤더를 User-Agent에 넣는 대신 전용 옵션을 사용하십시오. 필요한 애플리케이션 헤더는 지원되는 헤더 인터페이스에 속합니다.
기록하십시오 작업, 대상, 그리고 챌린지를 발행한 당사자 를 비밀을 제거하여. connection_timeout 는 연결 설정을 제한하며 긴 SOAP 작업의 전체 소요 시간을 제한하지 않습니다.