PHP JSON-RPC — неверный метод

Выполнение POST JSON-данных с использованием PHP curl. Однако при каждой отправке данных отображается сообщение об ошибке:

{ "result" : null, "error":"Invalid method", "id": default, "jsonrpc": "2.0"" }

Конечно, моим первым шагом было отправить данные через браузер с помощью плагина Live HTTP Headers, чтобы я мог видеть, как выглядят необработанные данные:

{"jsonrpc":"2.0","method":"get","id":1,"params":["2145359"]}

Поэтому я использую этот код для форматирования моих данных:

$post_info=json_encode(array("jsonrpc"=>"2.0","method"=>"get","id"=>1,"params"=>array("2145359")), JSON_UNESCAPED_SLASHES)

Когда я повторяю свои данные PHP, они выглядят одинаково:

{"jsonrpc":"2.0","method":"get","id":1,"params":["2145359"]}

Затем я использую эту функцию curl для публикации данных:

$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, some_post_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_info);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
$result=curl_exec($ch);
curl_close($ch);
return $result;

…и появляется «недопустимый метод». Какие-либо предложения?

0

Решение

Публикуйте данные как «нормальную» запись вместо строки json.

Чтобы преобразовать массив в данные поста, которые будут использоваться с curl а также CURLOPT_POSTFIELDS, ты можешь использовать http_build_query() метод.

Пример:

$post_info = http_build_query(array(
"jsonrpc" => "2.0",
"method"  => "get",
"id"      => 1,
"params"  => array(
"2145359")
));
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector