【问题标题】:CURL sending XML without spaces PHPCURL发送没有空格的XML PHP
【发布时间】: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>

&lt;functionname="AddFinancial"&gt; 应该是 &lt;function name="AddFinancial"&gt; 如果尝试使用不同的标题,但到目前为止没有任何效果。有什么想法吗?

【问题讨论】:

  • 查看urlencode
  • 使用SimpleXMLElement 并使用$node-&gt;addAttribute('type', 'stars'); 作为节点的属性。查看更多详情php.net/manual/en/simplexmlelement.addattribute.php
  • 我会问你为什么要在 xml 中添加这些新行?缺少这种格式应该不会影响任何事情。
  • 你怎么知道它发送的是没有空格的?
  • 谢谢,我试试这些选项。 @hassan 我联系了创建 API 的人,他们检查了日志并告诉我这就是它没有解析槽的原因。

标签: php xml curl


【解决方案1】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-09
  • 1970-01-01
  • 2018-06-13
  • 2012-08-15
  • 2011-03-01
  • 1970-01-01
相关资源
最近更新 更多