使用PHP-Soap客户端的多维数组
我正在尝试创建一个SOAP客户端,但我需要按照文档中的要求发送一个多维数组(我认为),示例如下:使用PHP-Soap客户端的多维数组,php,arrays,soap,soap-client,Php,Arrays,Soap,Soap Client,我正在尝试创建一个SOAP客户端,但我需要按照文档中的要求发送一个多维数组(我认为),示例如下: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.senior.com.br"> <soapenv:Body> <ser:ColaboradoresAdmitidos> <user
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.senior.com.br">
<soapenv:Body>
<ser:ColaboradoresAdmitidos>
<user>String</user>
<password>String</password>
<encryption>Integer</encryption>
<parameters>
<NumEmp>Integer</NumEmp>
<AbrTipCol>String</AbrTipCol>
<IniPer>DateTime</IniPer>
<FimPer>DateTime</FimPer>
</parameters>
</ser:ColaboradoresAdmitidos>
</soapenv:Body>
</soapenv:Envelope>
但是在请求中,它似乎不接受数组,事实上我做了一些测试,除了前3个参数,但没有一个输入生成的XML
我已经以不同的方式创建了数组,并更改了参数值,但它始终返回如下:
<?xml version="1.0" encoding="UTF-8"?>\n
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://services.senior.com.br">
<SOAP-ENV:Body>
<ns1:ColaboradoresAdmitidos>
<user>xxxxxxx</user>
<password>xxxxxxxxx</password>
<encryption>0</encryption>
<parameters/>
</ns1:ColaboradoresAdmitidos>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
\n
xxxxxxx
xxxxxxxxx
0
有人可以帮我,因为服务器知道缺少参数,所以我无法执行查询。在互联网上搜索时,我发现很多人都有这个问题,但他们无法解决。我发现了错误。 当参数与WSDL中注册的参数不匹配时,就会发生这种情况。在我的例子中:文档用大写字母提到参数,但是,我不得不用小写字母 似乎参数键必须与wsdl中注册的值相同。 例:
可以使用循环来代替发送多个soap请求吗。
<?xml version="1.0" encoding="UTF-8"?>\n
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://services.senior.com.br">
<SOAP-ENV:Body>
<ns1:ColaboradoresAdmitidos>
<user>xxxxxxx</user>
<password>xxxxxxxxx</password>
<encryption>0</encryption>
<parameters/>
</ns1:ColaboradoresAdmitidos>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
$arguments = [
'user' => 'xxxxx',
'password' => 'xxxxxxxxxx',
'encryption' => 0,
'parameters' => array(
'numEmp' => 1,
'abrTipCol' => '1',
'iniPer' => '01/01/2019',
'fimPer' => null
)];