У меня возникла проблема с форматированием с использованием функций curl_setopt в PHP. Я в основном пытаюсь воссоздать запрос cURL ниже, но мой код возвращает плохой запрос с сервера. Я почти уверен, что это связано с плохим форматированием, но я не могу понять, где я ошибся.PHP cURL JSON Проблемы с форматированием объектов
//This code returns the data back successfully
curl -H "Content-Type: application/json" -d '{"bio_ids": ["1234567"]}' http://localhost:9292/program
<?php //This code returns a bad request from the server
$bio = array('bio_ids'=>'1234567');
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'http://localhost:9292/program',
CURLOPT_POST => 1, // -d
CURLOPT_POSTFIELDS => $bio,
CURLOPT_HTTPHEADER => array('Content-Type: application/json'), // -H
));
$resp = curl_exec($curl);
curl_close($curl);
?>
В PHP, вы не отправки JSON. Вам нужен 'json_encode ($ bio)'. Это может быть все. – Rudie
О, интересно, я не понимал, что ему нужен массив в формате json-объекта. Отлично, спасибо, что решил мою проблему! –
Добро пожаловать. CURL хочет строку данных. Только вы знаете, как форматировать ваши данные в строку. Иногда это JSON, иногда XML, иногда HTTP-строка запроса. – Rudie