soap - 使用 SoapClient 发送空字符串
问题描述
我正在将网站与 SOAP API 集成。但是当我需要像使用 SoapUI 一样发送一个空字符串(不是空值)时,我遇到了一个问题:
<soapenv:Body>
<urn:Datos_Articulo soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<ID xsi:type="xsd:string"></ID>
<IP xsi:type="xsd:string">0</IP>
<CodS xsi:type="xsd:string">TA8094BK</CodS>
<Nombre_Carrito xsi:type="xsd:string">?</Nombre_Carrito>
<TablaSinTags xsi:type="xsd:boolean">?</TablaSinTags>
</urn:Datos_Articulo>
</soapenv:Body>
但是当这样做并使用 $client->__getLastRequest() 方法检查请求时,它总是发送这个:
<SOAP-ENV:Body>
<ns1:Datos_Articulo>
<ID xsi:type="xsd:string">Array</ID>
<IP xsi:nil="true"/>
<CodS xsi:nil="true"/>
<Nombre_Carrito xsi:nil="true"/>
<TablaSinTags xsi:nil="true"/>
</ns1:Datos_Articulo>
</SOAP-ENV:Body>
这是我的参数在发送之前的准备方式:
$params = array(
"ID" => "",
"CodS" => $code,
"IP" => '0',
'TablaSinTags' => false
);
解决方案
解决了。错误是在调用 __soapCall 方法时,我作为参数传递: array($params) 而不是仅 $params (因为 $params 已经是一个数组)。我仔细检查了所需的参数:https ://www.php.net/manual/es/soapclient.soapcall.php
推荐阅读
- jquery - 如何在数据表中显示自定义消息?
- javascript - 圆点出现在带有圆形线帽FF,IE的行之前
- c# - 无法将值存储在变量中
- tcl - Regsub 用于设置文本 [join $text \n] 丢失大括号错误
- python - 无法在 Windows 10 中安装 pip
- c++ - 为什么我的文件没有用 ifstream C++ 打开?
- javascript - 如何检索 Json 数据并在 Chart.Js 上显示
- angular - 为什么需要在 Web 服务器上提供 Angular app dist build?
- node.js - 如何编写一个循环通过深度嵌套的 json 模式表单对象的函数?
- vb6 - 接受文本框中的名称,当有人点击打印按钮时打印它