答案 0 :(得分:3)
首先,我自己是初学者,所以我无法保证完全正确的答案,但我至少可以给你一些提示。
使用SoapClient而不是NuSoap。 SoapClient是用C编写的,NuSoap是用PHP编写的,所以SoapClient更快。
如果你的WSDL文件没问题,那么你所要做的就是:
$client = new SoapClient("[URL to wsdl]");
之后,SoapClient将负责其余部分,并使WSDL中定义的所有过程直接可用。
$result = $client->name_of_procedure($arg1, $arg2, ...);
结果将是stdClass类型或具有stdClass类型元素的数组。
如果没有WSDL,您必须自己指定所有细节,参数类型,命名空间......以及直接通过__soapCall()调用。
无论哪种方式,您都可以使用var_dump()&检查$ result的结构。有限公司
答案 1 :(得分:1)
正如Raffael所说,你最好使用PHP SOAP EXTENSION提供的SoapClient。
测试您的服务:
首先声明一个options数组,你可以告诉你例如不要使用wsdl(它在开发环境中很有用)
$options = array(
'soap_version'=>SOAP_1_1,
'exceptions'=>true,
'trace'=>1,
'cache_wsdl'=>WSDL_CACHE_NONE
);
然后从你拥有的wsdl开始构建客户端:
$client = new SoapClient("http://service.nnerhverv.dk/nne-ws/3.1/NNE?WSDL", $options);
像这样调用方法searchTargetGroup。这里的要点是tu正确构建了questionTargetGroup参数,这应该可以工作:
//build the parameters for the SearchTargetGroup
$questionTargetGroup = array (
"companyFormCodeList" => "10,60,80",
"companyStatus" => "0",
"hasPhoneOnly" => "true"
);
$response = $client->searchTargetGroup($questionTargetGroup, 500, 1, 1, "passstring");
最后打印出您从服务中回复的回复
print_r($response);
答案 2 :(得分:0)
我写了一篇关于如何从PHP调用Serena webservices的文章。 但它可以适用于任何网络服务:http://www.geekmindsthinkalike.com/php-and-serena-web-services/
希望有所帮助