通过PHP的SoapClient将对象传递给.NET Web服务

时间:2009-06-12 22:17:30

标签: .net php soap

我的公司通过SOAP发布了一组.NET Web服务。我需要将我的PHP应用程序绑定到这些中,但是我遇到了一个我无法找到解决方案的问题。我需要访问的其中一项服务的签名为Advertiser CreateAdvertiser ( Advertiser advertiser )

如何传递我没有的对象实例(广告商)?我已经尝试创建stdClass()的实例并分配.NET广告商所需的属性,但这并不是真的。不知何故,我需要编写一个服务将识别并传递的对象。关于如何去做的任何想法?

当然,我正在使用PHP的SoapClient类。

非常感谢。

UPDATE:经过大量的反复试验后,我终于发现问题的第一部分是没有传递任何参数 - 既不是简单的标量也不是复杂的类型。我尝试使用命名参数:array ( 'name1' => 'val1', 'name2' => 'val2' )和未命名,但转储__getLastRequest显示空方法调用:

...<SOAP-ENV:Body><ns1:CreateAdvertiser/></SOAP-ENV:Body>...

我认为,在担心下一个问题之前,我需要解决这个问题。

2 个答案:

答案 0 :(得分:2)

所以这里的答案,至少对我试图打电话的服务来说,简单而痛苦。它只涉及很多阵列。

$user = AdvertiserProxy->CreateAdvertiser ( 
   array (
      'advertiser' => array (
         'Name' => 'Advertiser Name',
         'IndustryCodeList' => array (
            'Agency',
            'Fortune 500'
         )
      )
   )
);

advertiser“对象”只是其各部分的总和。

答案 1 :(得分:0)

我必须这样做一次。使用PHP的客户端在使用Web服务时遇到问题。 (我认为他正在使用NuSoap)我用Fiddler来捕捉xml是如何发生的。一旦我们知道了,他就可以组装xml,添加soap信封,调整内容长度标题并成功提交。

创建PHP或Java无法使用的Web服务太容易了。