2012-02-18 5 views
0

Мне нужно установить заголовок и отправить необходимые параметры для приложения аутентификации. Но проблема в том, что я устанавливаю данные заголовка, не публикуется.Данные PHP cURL не отправлены, если установлены заголовки?

target.php

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

PHP скрипт С Post Параметры и без заголовков

<?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 Data

<?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

Try:

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

насчет

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

, чтобы веб-сервер получить полную длину данных.