php - Curl 请求损坏 XML 发布数据

标签 php xml curl

我将 XML 数据作为带有 curl 的 POST 请求发送到服务器,如下所示:

    // $params contains xslt="<xml version ...."
    $url = get_cfg_var('Http_Host') . "/webservice/update.php?";
    $strParameters = http_build_query($params);

    $ch = curl_init($url);
    // Set options
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $strParameters);
    $data = curl_exec($ch);

现在,当我在 webserive/update.php 中获取数据时

$_REQUEST['xslt'] 只包含一些来自 xml 的叶数据,大部分标签都像这样被剥离 [但有很多新行]

 USD

  ,
  .


  0 
  5

我不知道发生了什么。这是一些双重编码问题吗?

strParameters 确实包含形式 urlencoded 格式的适当数据 [+ 表示空格等]

在将它发送到 curl 之前,我尝试了一个 urldecode。但仍然没有解决问题。

最佳答案

这更多的是评论而不是具体的解决方案,但我会考虑使用数组方法而不是自己编码:

您不需要自己对后期数据进行编码。可以直接用数组,see :

CURLOPT_POSTFIELDS The full data to post in a HTTP "POST" operation. [...] This parameter can either be passed as a urlencoded string like 'para1=val1&para2=val2&...' *or as an array with the field name as key and field data as value. If value is an array, the Content-Type header will be set to multipart/form-data.

关于php - Curl 请求损坏 XML 发布数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7777530/

相关文章:

php - 未以正确的格式从 python 脚本返回代码

PHP $_POST 多行数组

html - 如何计算 XML 文件的段落数并使用 XSLT 在 HTML 文件中显示它们?

Android Studio 无法解析 ?android : resources

php - 使用 PHP、Curl 和 MySQL 数据库进行网站抓取

python - 如何将curl转换为python请求

javascript - 使用验证插件 jquery 验证输入数组 - 显示每个输入的错误

mysql - 将大型 XML 文件转换为 MySQL 的最简单方法

php - 缺少必需的参数,包括无效的参数值,使用 LinkedIn API 参数不止一次

javascript - 单击 mysql ajax 下拉菜单后重定向到链接