使用PHP在CURL的标头中发布参数和数组

时间:2018-08-10 06:52:46

标签: php curl

我正面临一个问题,我只需要在标头中发送一个数组,在正文中发送一些参数,但是当我添加

curl_setopt($curl, CURLOPT_HTTPHEADER, array('Token:'.$token));

此行发送令牌,但参数数组为空,但是当我刚删除该行时,参数成功发送但令牌丢失

代码如下:

      $data = array(

        'name' => $_POST['name'],
        'city' => $_POST['city'],
        'mobileNo' => $_POST['mobileNo'],
      );

      $params = http_build_query($data);
      $curl = curl_init('URL');
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_POST, true);
      curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
      curl_setopt($curl, CURLOPT_HTTPHEADER, 
      array('Token:'.$token));
      $result = curl_exec($curl);

1 个答案:

答案 0 :(得分:1)

这是因为您覆盖了标头,并且因为缺少内容类型标头。您必须将该标头添加到标头数组:

curl_setopt($curl, CURLOPT_HTTPHEADER,array(
'Token: '.$token,
'Content-Type: application/x-www-form-urlencoded',
'Content-Length: '.strlen($params)
));

编辑:我已将帖子更新到有效的解决方案