2017-01-21 16 views
0

У меня есть wsld url. Я должен добавить пользовательский заголовок HTTP-запроса для авторизации для этого wsdl. Когда я пытаюсь использовать soapclient следующим образом, я получаю ошибку.Soapclient wsdl инициализируется с пользовательским заголовком HTTP-запроса

/* userName and password is masked in this question */ 
$opts = array(
     'http'=>array(
       "userName:xxxxx\r\n". 
       "password:xxxxxx\r\n" 
     ) 

); 
$streamContext = stream_context_create($opts); 
$cilent = new SoapClient("https://iflyrestest.ibsgen.com:6013/iRes_Booking_WS/services/AvailabilityPort?wsdl" , array('stream_context' => $streamContext)); 

Ошибка:

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't find <definitions> in 

Потому что ответ, как "Вы не авторизованы для доступа к этому URL ...

Кроме того, когда я пытаюсь функция 'file_get_content()' с тем же stream_context , Я успешно получаю содержание этого URL-адреса.

Как использовать soapclient для этого случая?

ответ

0

Если вы уверены, что это базовая аутентификация, то вы можете просто использовать параметры SoapClient и вместо stream_context с вашими учетными данными.

+0

@mikeel К несчастью, wsdl не использует http basic authentication. Я должен отправить их через http-заголовок –