使用PHP SOAPClient获取XML响应
我正在尝试使用php本机SoapClient函数复制此结构使用PHP SOAPClient获取XML响应,php,soap,Php,Soap,我正在尝试使用php本机SoapClient函数复制此结构 $client = new SoapClient('my.wsdl', ['trace'=>1, 'cache_wsdl' => WSDL_CACHE_NONE]); $client->MethodToCall($params); var_dump($client->__getLastRequest()); 这是预期的xml请求: <soapenv:Envelope xmlns:soapenv="http
$client = new SoapClient('my.wsdl', ['trace'=>1, 'cache_wsdl' => WSDL_CACHE_NONE]);
$client->MethodToCall($params);
var_dump($client->__getLastRequest());
这是预期的xml请求:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<MethodToCall>
<MethodToCallRQ>
<RqHeader HostID="123456" Xtoken="TOKEN123456" Interface="WEB" UserName="WEB"/>
<SearchType>NAME</SearchType>
<RecordCode/>
<Name>MARIO</Name>
</MethodToCallRQ>
</MethodToCall>
</soapenv:Body>
</soapenv:Envelope>
$request的转储是:
object MethodToCall (1) {
protected MethodToCallRQ -> object MethodToCallRQ (10) {
protected SearchType -> string (4) "NAME"
protected RecordCode -> NULL
protected Name -> string (7) "Stefano"
protected Surname -> NULL
protected VatCode -> NULL
protected ZipCode -> NULL
protected City -> NULL
protected CountyCode -> NULL
protected CategoryCode -> NULL
protected RqHeader -> object RequestHeader (5) {
protected HostID -> string (6) "123456"
protected Xtoken -> string (11) "TOKEN123456"
protected Interface -> string (3) "WEB"
protected UserName -> string (3) "WEB"
}
}
}
生成的xml是:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<parameters>
<MethodToCallRQ>
<SearchType>NAME</SearchType>
<RecordCode/>
<Name>Stefano</Name>
<Surname/>
<VatCode/>
<ZipCode/>
<City/>
<CountyCode/>
<CategoryCode/>
<RqHeader>
<HostID>123456</HostID>
<Xtoken>TOKEN123456</Xtoken>
<Interface>WEB</Interface>
<UserName>WEB</UserName>
</RqHeader>
</MethodToCallRQ>
</parameters>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
为什么要贴标签
<parameters>
而不是
<MethodToCall>
?拥有WSDL可能有助于了解预期的请求以及它不起作用的原因
你试过使用吗?然后让我知道这是预期的xml请求-实际请求是什么?我不确定实际请求是否有用,我在我的示例中尝试了许多$parameters组合,我只是为了清楚起见才报告了它,但我无法在正文中重现xml。
<MethodToCall>