如果设置了标题,是否未发布PHP cURL数据?
我需要为身份验证应用程序设置标头和post所需参数。但问题是,如果我设置标题数据未发布 target.php如果设置了标题,是否未发布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
<?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)));