如果设置了标题,是否未发布PHP cURL数据?

如果设置了标题,是否未发布PHP cURL数据?,php,curl,http-headers,Php,Curl,Http Headers,我需要为身份验证应用程序设置标头和post所需参数。但问题是,如果我设置标题数据未发布 target.php <?php echo $_POST['registration_id']; ?> 带有Post参数且不带标题的PHP脚本 <?php $inputdata = 'registration_id=123456789'; $x = curl_init("http://localhost/target.php"); curl_setopt($x, CURLO

我需要为身份验证应用程序设置标头和post所需参数。但问题是,如果我设置标题数据未发布

target.php

<?php
echo $_POST['registration_id'];
?>

带有Post参数且不带标题的PHP脚本

<?php
  $inputdata = 'registration_id=123456789';
  $x = curl_init("http://localhost/target.php");
  curl_setopt($x, CURLOPT_POST, 1);
  curl_setopt($x, CURLOPT_POSTFIELDS, $inputdata);
  curl_setopt($x, CURLOPT_FOLLOWLOCATION, 0);
  curl_setopt($x, CURLOPT_RETURNTRANSFER, 1);
  $data = curl_exec($x);
  var_dump($data);
  curl_close($x);
?>

PHP脚本,带有标题和帖子数据

   <?php
      $inputdata = 'registration_id=123456789';
      $x = curl_init("http://localhost/target.php");
      curl_setopt($x, CURLOPT_HTTPHEADER, array('Content-length: 9'));
      curl_setopt($x, CURLOPT_POST, 1);
      curl_setopt($x, CURLOPT_POSTFIELDS, $inputdata);
      curl_setopt($x, CURLOPT_FOLLOWLOCATION, 0);
      curl_setopt($x, CURLOPT_RETURNTRANSFER, 1);
      $data = curl_exec($x);
      var_dump($data);
      curl_close($x);
    ?>

所以在案例1(没有标题)中,我的输出是我发送的数据。在案例2中(带有标题),我的输出为空。如果我设置了标题,则数据不会过帐。那么,可能的解决方案是什么呢。谢谢。

怎么样

$header = 'Content-length: ' . strlen($inputdata);
curl_setopt($x, CURLOPT_HTTPHEADER, array($header));
要让web服务器获取数据的完整长度,请尝试:

curl_setopt($x, CURLOPT_HTTPHEADER, array('Content-length: '.strlen($inputdata)));