Зареждането на отдалечен 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 операция.

Подобни статии