我是SOAP的新手,并且处理一个Web服务,它似乎之前没有人使用过PHP接口。除C#外,他们没有任何示例代码,但我的确拥有这些代码。 eServices.asmx提供了WSDL,如果这是正确的说法。调试PHP SOAP调用
我得到的错误是“服务器无法识别HTTP Header SOAPAction的值:”那个训练冒号表明没有值传递,也许。
我的代码如下所示:
$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);
,但我自己也尝试:
$param = array('usrname','pass',$xml_data);
$res = $soapclient->call('UpdateData',$param, $namespace);
谷歌搜索表明,这种错误是一个命名空间的问题。 C#代码我只有一个命名空间参考:
[System.Web.Services.WebServiceBindingAttribute(Name="eServicesSoap", Namespace="http://www.example.com/webservices/")]
如果我倾倒$ SoapClient的,以之前的函数调用我看到,它已经从eServices.asmx接收数据的屏幕。
我不确定如何进行调试,而且服务人员不熟悉与.NET IDE之外的服务交互。
有什么想法?建议吗?
感谢您的答复模拟人生!当我打电话给 $ funcs = $ soapclient - > __ getFunctions(); print_r($ funcs); 我得到同样的错误? SOAP_Fault对象 ( [error_message_prefix] => [模式] => 1 [级] => 1024 [代码] =>皂:客户端 [消息] =>服务器不承认的值HTTP头部SOAPAction:。 [userinfo] => – jerrygarciuh 2010-10-20 15:14:17
好的,那么问题就会更深入,更可能是一个配置问题......搜索提出了一些关于XML名称空间的问题:http://bluebones.net/2003/ 07/server-did-not-recognized-http-header-soapaction/ – 2010-10-21 02:35:59
顺便说一句,你使用的是WSDL文件/ URL吗? – 2010-10-21 02:39:25