2012-02-18 75 views
0

我需要爲驗證應用程序設置標題和發佈必需的參數。但問題是如果我設置標題數據不公佈。如果設置了標題,PHP cURL數據不會發布?

target.php

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

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腳本頁眉和POST數據

<?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(帶頭文件)中,我的輸出是空白的。如果我設置標題數據不發佈。那麼可能的解決方案是什麼?謝謝。

回答

1

嘗試:

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

什麼

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

讓web服務器獲取數據的全長。