Создание Curl для PHP-запроса JSON RPC - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь подключиться к Electroneum Wallet rpc.Пример запроса Curl: -

 curl  -u user:pass --digest  -X POST http://127.0.0.1:8050/json_rpc  -d '{"jsonrpc":"2.0","id":"0","method":"'getaddress'","params":{}}'  -H 'Content-Type: application/json'

, который прекрасно работает на стороне машины.Но когда я пытаюсь PHP как этот

 $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://127.0.0.1:8050/json_rpc");
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
    curl_setopt($ch, CURLOPT_USERPWD, "user" . ":" . "pass");
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"jsonrpc\":\"2.0\",\"id\":\"0\",\"method\":\"getaddress'\",\"params\":{}}'");
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
    curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    $response = curl_exec($ch);
    if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
    curl_close($ch);
  print_r($response);

Он возвращает { "error": { "code": -32601, "message": "Method not found" }, "id": "0", "jsonrpc": "2.0" }.Я не знаю, почему это не работает, возможно из-за --digest.Требуется помощь

1 Ответ

0 голосов
/ 18 октября 2018

Вы забыли удалить одну кавычку в имени вашего метода в опциях запроса:

curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"jsonrpc\":\"2.0\",\"id\":\"0\",\"method\":\"getaddress'\",\"params\":{}}'");

должно быть:

curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"jsonrpc\":\"2.0\",\"id\":\"0\",\"method\":\"getaddress\",\"params\":{}}'");

Но в любом случае, если вы планируете делать несколько разныхобращаясь к их JSON-RPC API, я бы посоветовал вам использовать клиентскую библиотеку, которая выполняет всю обработку протокола JSON-RPC, например, jsonrpc / jsonrpc .

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