Tengo un servicio web WCF que permite tanto clientes HTTP básicos como WS-HTTP, ambos a través de HTTPS con autenticación de contraseña de nombre de usuario &. Esto se logra con dos enlaces en el mismo servicio.Uso de PHP para llamar a un servicio web WCF con enlaces múltiples
Por lo tanto, el servicio está en https://foo.com/Service.svc, la básica HTTP (SOAP 1.1) punto final es https://foo.com/Service.svc/Unp11 y WS-HTTP (SOAP 1.2) punto final se https://foo.com/Service.svc/Unp.
Un cliente está intentando acceder a este servicio web a través de PHP 5, utilizando su soporte SOAP incorporado, y tiene problemas para conectarse al servicio. Continúa obteniendo una respuesta HTTP 400 (Solicitud incorrecta), que tiende a suceder si el mensaje SOAP está mal formado, o un mensaje SOAP 1.1 se envía a un punto final SOAP 1.2 (o viceversa).
Solo conozco PHP básico, así que estoy teniendo problemas para ayudarlo. Sé que usted puede crear un cliente haciendo
$client = new SoapClient('https://foo.com/Service.svc?wsdl');
pero ¿cómo se especifica la unión/punto final? ¿Hay algún problema conocido que logre todo esto con PHP?
ACTUALIZACIÓN
Ok, así que puedo usar PHP para conectarse al servicio WCF bien (que especifica la versión de SOAP en el SoapClient
constructor), y llamando $client->__getFunctions()
devuelve una lista correcta de todas las operaciones de servicio web.
cuando trato de llamar a uno usando $client->__soapCall
, la página sólo se sienta allí cargar durante bastante tiempo, y finalmente devuelve el error "error al recuperar las cabeceras http". ¿Qué se supone que significa esto exactamente y cómo lo soluciono? (El consumo del servicio del cliente .Net funciona perfectamente).
Gracias, esto ha sido útil.Ahora cuando llamo a una de las operaciones del servicio, ¡parece que el script no regresa! He agregado algunos detalles a la pregunta original. –
Vaya, no esperé lo suficiente. "Error al recuperar encabezados http" aparentemente ...? –