Soy nuevo en SOAP y trato con un servicio web donde parece que nadie se ha conectado previamente usando PHP. No tienen código de ejemplo excepto C# pero yo sí tengo eso. eServices.asmx proporciona WSDL si esa es la forma correcta de decir eso.Depurar llamada SOAP de PHP
El error que estoy recibiendo es "El servidor no reconoció el valor de la SOAPAction del Encabezado HTTP", con ese punto de entrenamiento que sugiere que no se pasa ningún valor, tal vez.
Mi código es el siguiente:
$URL = "http://nolaflash.example.com/xxxWS/eServices.asmx";
$namespace="http://www.example.com/webservices/";
include("SOAP/Client.php");
$soapclient = new SOAP_Client($URL);
$xml_data = // valid XML is here;
$res = $soapclient->UpdateData('usrname','pass',$xml_data);
pero también he intentado:
$param = array('usrname','pass',$xml_data);
$res = $soapclient->call('UpdateData',$param, $namespace);
googlear sugiere que este error es un problema de espacio de nombres. El código C# Tengo sólo tiene un espacio de nombres de referencia:
[System.Web.Services.WebServiceBindingAttribute(Name="eServicesSoap", Namespace="http://www.example.com/webservices/")]
Si yo tiro $ SoapClient a la pantalla antes de la llamada a la función veo que ha recibido datos de eServices.asmx.
No estoy seguro de cómo solucionar este problema y los miembros del personal del servicio no están familiarizados con la interacción con el servicio fuera de .NET IDE.
¿Alguna idea? ¿Consejo?
Gracias por los Sims respuesta! Cuando llamo al $ funcs = $ soapclient -> __ getFunctions(); print_r ($ funcs); Me sale el mismo error? SOAP_Fault objeto ( [error_message_prefix] => [mode] => 1 [nivel] => 1024 [code] => jabón: Cliente [mensaje] => Servidor no reconoció el valor de HTTP Encabezado SOAPAction:. [userinfo] => – jerrygarciuh
OK, bueno, entonces el problema es más profundo y es más probable que sea un problema de configuración ... Una búsqueda encontró algunas cosas sobre espacios de nombres XML: http: //bluebones.net/2003/ 07/server-did-not-recognize-http-header-soapaction/ –
BTW, ¿está usando un archivo WSDL/URL? –