卷曲请求损坏XML后期数据

时间:2011-10-15 11:25:30

标签: php xml curl

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

    // $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包含form-urlencoded格式的适当数据[+ for space etc.]

我在尝试使用urldecode之前将其发送给curl。但它仍然没有解决问题。

1 个答案:

答案 0 :(得分:0)

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

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

  

CURLOPT_POSTFIELDS 要在HTTP“POST”操作中发布的完整数据。 [...]此参数既可以作为urlencoded字符串传递,例如'para1 = val1&amp; para2 = val2&amp; ...'* ,也可以作为数组传递,字段名称为键,字段数据为值。如果value是数组,则Content-Type标头将设置为multipart / form-data。