À l'aide de PHP pour appeler un service web WCF avec plusieurs liaisons

J'ai un service web WCF qui permet à la fois de Base HTTP et WS-HTTP des clients, à la fois sur HTTPS à l'aide du nom d'utilisateur & mot de passe d'authentification. Ceci est obtenu grâce à deux fixations sur le même service.

Donc, le service est à https://foo.com/Service.svc, le HTTP de Base (SOAP 1.1) point de terminaison est https://foo.com/Service.svc/Unp11, et le WS-HTTP SOAP (1.2), de ce point de terminaison est https://foo.com/Service.svc/Unp .

Un client tente d'accéder à ce service web via PHP 5, à l'aide de son SOAP de soutien, et d'avoir des problèmes de connexion au service. Il reçoit un HTTP 400 (Bad Request), ce qui tend à se produire si le message SOAP est mal formé, ou un SOAP 1.1 message est envoyé à un SOAP 1.2 point de terminaison (ou vice versa).

Je ne connais que le PHP de base donc je vais avoir de la difficulté à l'aide de lui. Je sais que vous pouvez créer un client en faisant

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

mais comment spécifier la liaison/d'extrémité? Existe-il des problèmes connus de la réalisation de tout cela avec PHP?

Mise à JOUR

Ok, donc je peux utiliser le PHP pour se connecter au service WCF ok (en spécifiant la version SOAP dans le SoapClient constructeur), et en appelant $client->__getFunctions() renvoie une liste correcte de tout le web opérations de service.

Quand j'ai essayer d'appel à l'aide de $client->__soapCall, la page se trouve juste là chargement depuis un certain temps, et finalement retourne l'erreur "Erreur de Récupérer les en-têtes http". Ce qui est exactement ce que voulait dire et comment puis-je résoudre ce problème? (La consommation du service .Net client fonctionne parfaitement.)

OriginalL'auteur Graham Clark | 2009-07-27