当前位置:  开发笔记 > 编程语言 > 正文

如何使用CURL发送数组?我应该'urlencode`吗?

如何解决《如何使用CURL发送数组?我应该'urlencode`吗?》经验,为你挑选了2个好方法。

当我将一个数据数组作为cURL选项(通过CURLOPT_POSTFIELDS)分配时,我是否需要首先对该数据进行urlencode或将其处理?



1> Luca Matteis..:

C实现curl_setopt似乎不对文本进行URL编码.然而,在PHP5,该http_build_query函数返回的是,阵列的查询字符串表示 URL编码.

示例用法

  $curl_parameters = array(
    'param1' => $param1,
    'param2' => $param2
  );

  $curl_options = array(
    CURLOPT_URL => "http://localhost/service",
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => http_build_query( $curl_parameters ),
    CURLOPT_HTTP_VERSION => 1.0,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HEADER => false
  );

  $curl = curl_init();
  curl_setopt_array( $curl, $curl_options );
  $result = curl_exec( $curl );

  curl_close( $curl );



2> Patrick Glan..:

您不必首先使用urlencode.但是,重要的是要意识到传递一个数组会使cURL发送它multipart/form-data,这解释了为什么它不需要urlencoded(既不是你也不是cURL),如果你想上传文件你需要使用一个数组.如果你是http_build_query()第一个(并将其作为字符串发送),它将被视为application/x-www-form-urlencoded.

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有