【发布时间】:2017-03-22 16:25:00
【问题描述】:
$xmlVariable = '<function name="AddFinancial">
<component name="people">
<property name="ppl_id"><![CDATA[34234424]]></property>
</component>
<component name="bankpayment">
<property name="tlog_comment"><![CDATA[CURL, order ID: 242344]]>
</property> <property name="tlog_evtt_id"><![CDATA[bpm]]></property>
<property name="tlog_debit"><![CDATA[0]]></property>
<property name="tlog_credit"><![CDATA[2.00]]></property>
</component>
</function>';
$headers = array();
$headers[] = 'Accept: application/xml';
$headers[] = 'Content-Type: application/xml';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://test.testmanager.eu/API/Addfin.asp?api_license=234234");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, "input_XML=".$xmlVariable);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0');
$exe = curl_exec($ch);
$getInfo = curl_getinfo($ch);
上面的 CURL 将 XML 发送到 URL,但以某种方式删除了所有空格。
<functionname="AddFinancial"><componentname="people"><propertyname="ppl_id"><![CDATA[8DFB5500-6134-4220-9DB9-6FF841372C26]]></property></component><componentname="bankpayment"><propertyname="tlog_comment"><![CDATA[CURL,orderID:]]></property><propertyname="tlog_evtt_id"><![CDATA[bpm]]></property><propertyname="tlog_debit"><![CDATA[0]]></property><propertyname="tlog_credit"><![CDATA[2.00]]></property></component></function>
<functionname="AddFinancial"> 应该是 <function name="AddFinancial">
如果尝试使用不同的标题,但到目前为止没有任何效果。有什么想法吗?
【问题讨论】:
-
使用
SimpleXMLElement并使用$node->addAttribute('type', 'stars');作为节点的属性。查看更多详情php.net/manual/en/simplexmlelement.addattribute.php -
我会问你为什么要在 xml 中添加这些新行?缺少这种格式应该不会影响任何事情。
-
你怎么知道它发送的是没有空格的?
-
谢谢,我试试这些选项。 @hassan 我联系了创建 API 的人,他们检查了日志并告诉我这就是它没有解析槽的原因。