Из-за проверки брандмауэра в запросах всегда должны быть заголовки UserAgent и Accept.
Я пробовал это:
$soapclient = new soapclient('http://www.soap.com/soap.php?wsdl',
array('stream_context' => stream_context_create(
array(
'http'=> array(
'user_agent' => 'PHP/SOAP',
'accept' => 'application/xml')
)
)
)
);
запрос, полученный серверным мылом
GET /soap.php?wsdl HTTP/1.1
Host: www.soap.com
User-Agent: PHP/SOAP
Connection: close
ожидаемый результат
GET /soap.php?wsdl HTTP/1.1
Host: www.soap.com
Accept application/xml
User-Agent: PHP/SOAP
Connection: close
Почему "Принять" не отправлено? "Пользователь-агент" работает!