PHP CURL ПУБЛИКУЕТ данные с пустым значением

#php #json #curl #post

#php #json #curl #Публикация

Вопрос:

У меня есть этот код для отправки данных в URL, который получает данные с помощью приведенного ниже заголовка content-type, установленного как text / html

 file_get_contents("php://input");
  

Это код, который я использовал для публикации в url, и он отправляет данные, но без значений (я отправляю массив данных со значениями ключей).

 $url = "http://url im sending data to";

$object = array(
   "key1" => "123",
   "key2" => "345",
   "key3" => "567"
);

$data = http_build_query($object, '', 'amp;');

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTREDIR, 3);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$result = curl_exec($ch);
  

Тем не менее, он отправляет данные, но без значений, поскольку я получаю ответ от URL, в котором говорится, что значения пусты.

Более того, я проверил curl_errno ($ ch), и он ничего не возвращает, так что в моем коде нет ошибки (я думаю?)

Кто-нибудь может мне помочь?!

Заранее спасибо!

Ответ №1:

Хорошо, я решил проблему, и это было довольно просто.

Просто замените http_build_query на json_encode и убедитесь, что вы установили только curl_setopt как есть.

добавьте также нижний код.

 curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
  

Я не знаю почему, но по какой-то причине, если я добавлю другие переменные curl_setopt, такие как

 curl_setopt($ch, CURLOPT_POST, true);
  

это не работает.