【问题标题】:How to pass string value to my web service written in C# from php?如何从 php 将字符串值传递给我用 C# 编写的 Web 服务?
【发布时间】:2012-12-31 06:12:28
【问题描述】:

我想调用一个用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;
}

这两者有什么区别...

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

【问题讨论】:

  • var_dump($client-&gt;call('ShowSuppliers',$param);)检查你的输出
  • @Broncha :我检查过,变量值也是数组...
  • @Broncha :但是当我输入这样的代码时......它工作正常...... foreach($result as $key => $value) { echo $value; } 我之前的编码有什么问题...
  • 当您执行echo 时,您正在尝试回显一个数组,该数组只会打印Array

标签: php .net soap nusoap


【解决方案1】:

$client->call('ShowSuppliers',$param);为您返回一个 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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-02
    • 1970-01-01
    • 2021-07-04
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 2023-03-26
    相关资源
    最近更新 更多