2017-01-21 1 views
0

Ich habe WSld URL. Ich muss einen benutzerdefinierten http-Anfrage-Header hinzufügen, um für diese wsdl zu autorisieren. Wenn ich einen Soapclient wie folgt versuche, bekomme ich einen Fehler.Soapclient wsdl initialisieren mit benutzerdefinierten HTTP-Anfrage-Header

/* 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)); 

Fehler:

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

Weil Antwort ist wie 'Sie sind nicht berechtigt, diese URL zugreifen ...'

Auch wenn ich Funktion 'file_get_content()' versuchen, mit gleichen stream_context , Ich bekomme erfolgreich Inhalt dieser URL.

Wie sollte ich einen Soapclient für diesen Fall verwenden?

Antwort

0

, wenn Sie sicher sind, dass es sich um eine Standardauthentifizierung ist, dann können Sie einfach die login und password Soapclient-Optionen, statt stream_context, mit Ihren Zugangsdaten, sollte es dann funktionieren.

+0

@mikeel Leider verwendet die WSDL keine HTTP-Standardauthentifizierung. Ich muss sie über HTTP-Header senden –

Verwandte Themen