Ł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 klientaPobieranie WSDL lub przetwarzanie dokumentu.
Przetwarzanie zaimportowanego dokumentu/schematuRzeczywisty dodatkowy adres URL pobierania.
Wywołanie metody SOAPPunkt 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.

Powiązane artykuły