我想调用一个asp.net(c#)编写的soap web服务。实际上,web方法接受一个字符串作为参数并返回一些字符串作为输出。
在客户端(PHP)我使用nusoap访问web服务。
这是php代码调用我的web服务…
<?php
require_once('nusoap/lib/nusoap.php');
$wsdl="http://localhost/suppliers.asmx?WSDL";
$param=array('name'=>'saran');
$client = new soapclient($wsdl,'wsdl');
echo $client->call('ShowSuppliers',$param);
?>
但是当我运行这段代码时,echo语句只是在浏览器中显示数组…
我不知道这是什么问题…
但是当我尝试遵循Broncha方法时,它工作得很好…
我没有直接使用echo语句,而是尝试这样做
$result=$client->call('ShowSuppliers',$param);
foreach($result as $key => $value)
{
echo $value;
}
这两者的区别是什么?
$client->call(' showproviders ',$param);返回一个Array元素,所以无论何时回显一个数组元素,它被看作是在浏览器中编写的array。要打印数组,您可以这样做使用print_r(数组名)或var_dump(数组名);
在接下来的代码中,你使用foreach循环,所以它将数组元素解析为键和值对..
请不要使用call(' showproviders ',$param);由于call函数已被弃用,请参阅链接http://php.net/manual/en/soapclient.call.php
请使用soapCall函数,请参阅链接http://php.net/manual/en/soapclient.soapcall.php
由于该函数已弃用,因此以后可能会产生问题。