#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);
это не работает.