Завантаження віддаленого 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.

Схожі статті