Данные PHP cURL не публикуются, если установлены заголовки? - PullRequest
0 голосов
/ 18 февраля 2012

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

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 (с заголовками) мой вывод пуст.Если я установил данные заголовка не публикуется.Итак, каково возможное решение.Спасибо.

Ответы [ 2 ]

1 голос
/ 18 февраля 2012

Попробуйте:

curl_setopt($x, CURLOPT_HTTPHEADER, array('Content-length: '.strlen($inputdata)));
1 голос
/ 18 февраля 2012

А как насчет

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...