1

我想调用一个用asp.net(C#)编写的soap web服务。实际上,web方法将一个字符串作为参数并返回一些字符串作为输出。

在客户端(PHP)中,我使用nusoap访问 Web 服务。

这是调用我的网络服务的 php 代码...

<?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);
?>  

但是当我运行这段代码时,回显语句只是在浏览器中显示Array ......

我不知道这里有什么问题......

但是当我尝试遵循这样的 Broncha 方法时,它运行良好......

我没有直接使用 echo 语句,而是这样尝试

$result=$client->call('ShowSuppliers',$param);

foreach($result as $key => $value)
{
  echo $value;
}

这两个有什么区别...

请指导我摆脱这个问题......

4

1 回答 1

2

$client->call('ShowSuppliers',$param); 为您返回一个 Array 元素,因此每当您回显一个数组元素时,它都会被视为在浏览器中写入的 Array。要打印一个数组,您可以使用 print_r(array name) 或 var_dump(array name);。

在下一个代码中,您将使用 foreach 循环,因此它将数组元素解析为键和值对。

请不要使用 call('ShowSuppliers',$param); 因为 call 功能已被弃用,请参阅链接http://php.net/manual/en/soapclient.call.php

而是使用soapCall函数请看链接http://php.net/manual/en/soapclient.soapcall.php

由于该功能已弃用,因此以后可能会产生问题。

于 2012-12-31T08:10:28.327 回答