php SoapClient:请求中未显示参数
为什么我的param p_或Masterfields不在请求中?这个请求是从soap服务器发回的吗?是不是服务器拒绝了该特定参数的数据并将其清空了php SoapClient:请求中未显示参数,php,.net,xml,web-services,soap,Php,.net,Xml,Web Services,Soap,为什么我的param p_或Masterfields不在请求中?这个请求是从soap服务器发回的吗?是不是服务器拒绝了该特定参数的数据并将其清空了 $client = new SoapClient($wsdl, $options); $client->UpdateCustMaster(array('p_iCompanyID' => 100, 'p_lAccountNum' => 18087,
$client = new SoapClient($wsdl, $options);
$client->UpdateCustMaster(array('p_iCompanyID' => 100,
'p_lAccountNum' => 18087,
'p_sSysUser' => 'WebTest',
'p_oRSMasterFields' => 'THIS IS A TEST',
'p_lErrorCode' => 0
));
echo "REQUEST:\n" . $client->__getLastRequest() . "\n";
REQUEST:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.acme.com/">
<SOAP-ENV:Body>
<ns1:UpdateCustMaster>
<ns1:p_iCompanyID>100</ns1:p_iCompanyID>
<ns1:p_lAccountNum>18087</ns1:p_lAccountNum>
<ns1:p_sSysUser>WebTest</ns1:p_sSysUser>
<ns1:p_oRSMasterFields/>
<ns1:p_lErrorCode>0</ns1:p_lErrorCode>
</ns1:UpdateCustMaster>
</SOAP-ENV:Body>
$client=newsoapclient($wsdl,$options);
$client->UpdateCustMaster(数组('p\U iCompanyID'=>100,
‘p_lAccountNum’=>18087,
'p_sSysUser'=>'WebTest',
“p_或Masterfields”=>“这是一个测试”,
“p_lErrorCode”=>0
));
回显“请求:\n”$客户端->\uuu getLastRequest()。“\n”;
请求:
100
18087
网络测试
0
对于该项,您的WSDL如下所示:
<s:complexType>
<s:sequence>
<s:any namespace="acme.com/EnergyAPI/CustomerMaint/DSCustomerFields.xsd"/>
</s:sequence>
</s:complexType>
幕后发生的事情是PHP
SoapClient
类将以数组形式传递的信息映射到WSDL中指定的类型。由于您的原始文件没有任何元素/成员,因此它是空的。WSDL说明了该字段的哪些内容?如果它是一个序列,我想它不可能是一个字符串。所以get的值被删除了。您可能希望使用'p\u或masterfields'=>数组('这是一个测试'),
。但我不完全确定。不管我在里面放了什么,仍然是blankharkre,非常感谢,你是正确的,除了在我的情况下,我不得不做数组('any'=>'这是一个测试'),因为一些被上帝抛弃的原因。猜.net
$client->UpdateCustMaster(array('p_iCompanyID' => 100,
'p_lAccountNum' => 18087,
'p_sSysUser' => 'WebTest',
'p_oRSMasterFields' => array('any' => 'THIS IS A TEST'),
################################
'p_lErrorCode' => 0
));