Mit der PHP-Aufruf eines WCF web service mit mehreren Bindungen

Ich habe einen WCF-service, welches sowohl Grundlegende HTTP-und WS-HTTP-clients, die beide über HTTPS mit Benutzername & Passwort-Authentifizierung. Erreicht wird dies mit zwei Bindungen auf der gleichen service.

So, der service ist bei https://foo.com/Service.svc, die Grundlegenden HTTP (SOAP 1.1) Endpunkt https://foo.com/Service.svc/Unp11, und der WS-HTTP (SOAP 1.2) Endpunkt https://foo.com/Service.svc/Unp .

Client versucht, Zugriff auf diese web-service via PHP 5, mit seiner eingebauten SOAP-Unterstützung und Probleme bei der Verbindung zum Dienst. Er hält immer ein HTTP 400 (Bad Request) - Antwort, die dazu neigt zu geschehen, wenn die SOAP-Nachricht ist schlecht gebildet, oder eine SOAP 1.1-Nachricht eine SOAP-1.2-Endpunkt (oder Umgekehrt).

Ich nur weiß, Grundkenntnisse in PHP, so dass ich Probleme habe, ihm zu helfen. Ich weiß, Sie können einen client erstellen, indem Sie tun,

$client = new SoapClient('https://foo.com/Service.svc?wsdl');

aber wie geben Sie die binding - /Endpunkt? Gibt es irgendwelche bekannten Probleme der Verwirklichung all dies mit PHP?

UPDATE

Ok, so kann ich mit PHP eine Verbindung zu den WCF-service-ok (mit Angabe der SOAP-version in der SoapClient Konstruktor), und ruft $client->__getFunctions() gibt eine richtige Liste von allen web-service-Operationen.

Wenn ich versuche zu nennen, einen mit $client->__soapCall, die Seite sitzt nur da laden für eine ganze Weile, und schließlich wird die Fehlermeldung "Fehler beim Abrufen der http-Header". Was genau soll dies bedeuten und wie behebe ich es? (Konsum der Dienstleistung aus .Net-client funktioniert einwandfrei.)

InformationsquelleAutor Graham Clark | 2009-07-27
Schreibe einen Kommentar