我的公司通过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>...
我认为,在担心下一个问题之前,我需要解决这个问题。
答案 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服务太容易了。