0

我有一个标准 SOAP 的 .net Web 服务,并且我已经添加了 POST/GET 功能。在 .net 中,我可以毫无问题地使用 Web 服务,并且在使用测试 POST 页面时,我也可以成功使用 Web 服务。我收到了 php 开发人员的请求,要求使用我认为完全没有问题的 Web 服务,但是他无法获得成功的结果。我从来没有使用过 PHP,所以我没有一个测试项目,我什至可以将它用于 php 方面。我相信这是他使用过的第一个 Web 服务,所以他自己并没有太多经验。

所以我的问题是:

1) 作为一名 .net 开发人员,我什至不知道如何开始研究这个问题。我不知道这是我的网络服务有问题还是他的 php 代码有问题。因为 .net 和 POST 工作我倾向于相信这是他的代码中的东西,但是我无法测试,因为我不知道 php。

2)是否有一些标签或我需要做的事情才能让 php 正确使用我的服务?

3) 有什么工具可以用来检查与 php 的兼容性吗?

4) 有 PHP 知识的人可以看一下他的代码,看看有没有明显的问题?

已解决:请参阅答案中的工作代码。

4

4 回答 4

1
$function = "soapcall"; 
$array =array("Param1" => "parameter1", "Param2" => "parameter2", "Param3" => "parameter3"); 

$client = new SOAPClient( 
'http://url.asmx?WSDL', 
array( 
    'location' => 'url.asmx?WSDL', 
    'trace' => 1, 
    'style' => SOAP_RPC, 
    'use' => SOAP_ENCODED, 
) 
);


$result = $client->__soapCall('soapcall', array("parameters"=>$array));

foreach( $result as $r) 
{   print $r."<br>";    }
于 2012-05-15T22:38:13.163 回答
0

与 WCF 和其他 Web 服务缺乏互操作性 - 这不仅仅是 PHP 的问题,Java 库也经常无法与 WCF Web 服务一起使用。在许多其他 SO 问题中有更多信息 - 请参阅侧边栏。

您可以尝试的一件事是SOAPUI(或来自 sourceforge)以“交互方式”调用您的 Web 服务,这应该可以帮助他找出 Web 服务。

于 2012-05-15T12:08:02.917 回答
0

我们在 Php 中使用NuSoap进行 Web 服务调用,它运行良好。

于 2012-05-15T13:02:47.890 回答
0

.NET 服务需要有 http 端点(适配器)。 https://bugs.php.net/bug.php?id=50698

有时您还需要 NTLM 授权使用 NTLM 授权调用 web 服务

于 2018-01-23T07:46:57.247 回答