Ustawienia proxy PHP SoapClient dla WSDL i wywołań usług
Skonfiguruj opcje proxy PHP SoapClient do ładowania WSDL i wywołań usług bez wstrzykiwania danych uwierzytelniających do User-Agent.
Ładowanie zdalnego WSDL może odbywać się w konstruktorze SoapClient. Podaj proxy przed tym pierwszym pobraniem:
$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,
]);Użyj prawdziwego WSDL, hosta/portu proxy i zamierzonego źródła danych uwierzytelniających. Pole hosta to adres, a jego port jest osobny.
| Gdy to zawodzi | Żądanie lub operacja do zbadania |
|---|---|
| Tworzenie klienta | Pobieranie WSDL lub przetwarzanie dokumentu. |
| Przetwarzanie zaimportowanego dokumentu/schematu | Rzeczywisty dodatkowy adres URL pobierania. |
| Wywołanie metody SOAP | Punkt końcowy usługi zadeklarowany w WSDL, być może na innym hoście. |
Proces korzystający z buforowanego WSDL może pominąć żądanie, które zawodzi na innej maszynie. Zachowaj konfigurację pamięci podręcznej i rzeczywisty nieudany adres URL wraz z porównaniem, zamiast zmieniać proxy wyłącznie na podstawie udanego utworzenia.
proxy_login/proxy_password uwierzytelniają pośrednika. Docelowe login/password i uwierzytelnianie usługi na poziomie SOAP obsługują inne warstwy. Używaj dedykowanych opcji zamiast umieszczać nagłówki przypominające konto w User-Agent; wymagane nagłówki aplikacji należą do obsługiwanego interfejsu nagłówków.
Zarejestruj operację, cel i stronę wydającą wyzwanie z usuniętymi sekretami. connection_timeout ogranicza nawiązanie połączenia, a nie całkowity czas trwania długiej operacji SOAP.