PHP中的Soap数组对象。数据在SOAP请求中的哪个位置

时间:2011-12-09 11:24:47

标签: c# php apache soap

我正在尝试从C#调用SOAP服务。不幸的是,它在PHP中实现的方式对我来说有点令人困惑。我在这里用PHP解释了如何调用服务:

    $oClient = new SoapClient("http://xxxxxxxxx?wsdl",
array(
    'trace'         => 1, 
    'exceptions'    => true,
    'login'         => "xxxxxxxx",
    'password'      => "xxxxxxxx"       
    )); 

问题是我不知道如何在c#中传递数组或者格式化的消息是什么样的。

我想知道PHP如何将此信息插入到SOAP请求中。我让那个人删除安全性片刻,看看我的消息是否格式正确,一切正常,我写的是处理除了这个自定义数组对象之外的请求。

我尝试构建一台linux机器来监控输出,但由于某些原因我无法在我的机器上运行linux,因为它是绿屏,我真的需要快速完成这项工作,因为我现在已经浪费了很多时间。

我认为这些信息必须出现在SOAP请求的标题中,但文档似乎很少。我从来没有真正喜欢PHP的文档

1 个答案:

答案 0 :(得分:0)

你可以澄清一下你想做什么吗?您提供的PHP代码基于http://xxxxxxxxx?wsdl处的WSDL(Web服务描述语言)描述为SOAP服务构造SOAP客户端,它不会调用任何内容。您可以像下面这样调用WSDL中描述的各种函数:

$oClient->__soapCall("SomeFunction", array($a, $b, $c));

其中“SomeFunction”是远程函数的名称,数组是其参数。

无论如何,您似乎正在尝试在C#上构建SOAP客户端 - 应该有一个C#库或扩展,因此调用SOAP服务应该与PHP没有太大区别。基本上,您只需构造一个客户端并调用远程函数,这些函数是WSDL文件中描述的(及其参数)。你甚至不应该看到XML包。

如果您想看一些示例数据包的示例,请参阅:Annotated WSDL Examples @w3c.org

还有一些说明:Using WSDL in SOAP applications @ibm.com

但是这一切都由图书馆用您选择的语言照顾。 stackoverflow上有一个讨论:Which C# SOAP Client Library is easiest to use?