PHP中的Soap数组对象.数据在SOAP请求中的最终位置


Soap array object in PHP. Where does the data end up in the SOAP request

我正在尝试从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的文档

你能说清楚你想做什么吗?您提供的PHP代码基于WSDL (Web服务描述语言)在http://xxxxxxxxx?wsdl上的描述为SOAP服务构造SOAP客户机,它不调用任何东西。您调用WSDL中描述的各种函数,如下所示:

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

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

无论如何,看起来你正在尝试在c#上构建一个SOAP客户端-应该有一个c#库或扩展,所以调用SOAP服务应该与PHP没有太大的不同。基本上,您只需构造一个客户机并调用WSDL文件中描述的远程函数(及其参数)。您甚至不应该看到XML数据包。

如果你想看一些数据包看起来是什么样子的例子,这里有一个:注释WSDL示例@w3c.org

和一些描述:在SOAP应用程序中使用WSDL @ibm.com

但是这一切都由你选择的语言库来处理。在stackoverflow上有一个讨论:哪个c# SOAP客户端库最容易使用?