php SoapClient:请求中未显示参数

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,

为什么我的param p_或Masterfields不在请求中?这个请求是从soap服务器发回的吗?是不是服务器拒绝了该特定参数的数据并将其清空了

$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
                                ));