Прокси настройки на PHP SoapClient за WSDL и извиквания на услуги
Конфигурирайте прокси опциите на PHP SoapClient за зареждане на WSDL и извиквания на услуги, без да вмъквате идентификационни данни в User-Agent.
Зареждането на отдалечен 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 операция.