【发布时间】:2009-05-01 03:24:01
【问题描述】:
我相对没有 SOAP 经验。我正在尝试使用 WSDL 模式为客户端使用 Web 服务。我在使用该方法传递参数并让它们根据需要出现在请求中的参数时遇到问题。我使用的是标准的 php soap 类。
我的 SOAP 请求需要如下结构:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://hostserver/">
<SOAP-ENV:Body>
<ns1:DoLogin>
<ns1:request>
<ns1:Session>
<ns1:SessionId>00000000-0000-0000-0000-000000000000</ns1:SessionId>
</ns1:Session>
<ns1:UserCredential>
<ns1:UserName>username</ns1:UserName>
<ns1:Password>password</ns1:Password>
<ns1:ApplicationID>00000000-0000-0000-0000-000000000000</ns1:ApplicationID>
<ns1:ClientID>00000000-0000-0000-0000-000000000000</ns1:ClientID>
<ns1:ClientVersion>V1.0</ns1:ClientVersion>
</ns1:UserCredential>
</ns1:request>
</ns1:DoLogin>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
在 php 中我这样调用函数:
$client->DoLogin($args);
请求最终是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://hostserver/"><SOAP-ENV:Body><ns1:DoLogin/></SOAP-ENV:Body></SOAP-ENV:Envelope>
无论我如何传递 args(单个变量、数组、类对象),我都无法获得具有那样结构的请求。
谁能帮帮我?我敢肯定它会很简单。
【问题讨论】: