RPC-запрос Python JSON Ответ 403 - PullRequest
0 голосов
/ 19 мая 2018

Я пытаюсь отправить запрос на этот сайт: https://www.myetherapi.com/. Я не уверен, что не так с моим запросом, но print(res) возвращает <Response [403]> и print(res.json()) возвращает ошибку:

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Код:

import requests
import json


url = 'https://api.myetherapi.com/eth'
headers = {'content-type': 'application/json'}

payload = {
    "jsonrpc": "2.0",
    "method": "eth_getBalance",
    "params": ["0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8", "latest"],
    "id": 1
    }

res = requests.post(url, data=json.dumps(payload), headers=headers)


print(res)
print(res.json())

Есть идеи о том, что я делаю неправильно?

Редактировать:

Я разместил этот вопрос и затем повернулсяс моего компьютера.когда я вернулся через несколько часов и прочитал ответы в этой теме, я снова запустил код, и он заработал.Затем, через несколько минут, он снова не работает.Все, что я сделал, это просмотр некоторых веб-страниц между временем, когда он работал и перестал работать.Я бегу это в Pycharm. Как у меня работает

Ответы [ 2 ]

0 голосов
/ 20 мая 2018

HTTP 403 Запрещено из вики:

HTTP 403 - это код состояния HTTP, который указывает, что сервер, с которым клиент пытается связаться, понял запрос, но не выполнит его в течениепричина, отличная от авторизации.

Ошибка 403: «Сервер понял запрос, но отказывается его выполнить. Авторизация не поможет, и запрос НЕ ДОЛЖЕН повторяться.»

Возможно сервер избегает быть спамом.(или у вас проблемы с интернетом) В некоторых случаях это было из-за отсутствия User-Agent.Это может помочь.Вы можете проверить этот вопрос. Запросы Python.403 Запрещено

0 голосов
/ 19 мая 2018

Вы пробовали это несколько раз?Вы также должны проверить res.text, может быть, есть какой-то ответ об ошибке, связанный с вашей проблемой.

Может быть, вы должны попробовать прокси?http://docs.python -requests.org / ru / master / user / advanced / # прокси

Приведенный выше код работает и возвращает следующее:

>>> res.json()
{'jsonrpc': '2.0', 'result': '0x4017bc319327a00', 'id': 1}
...