python JSON RPC请求响应403

时间:2018-05-19 17:45:41

标签: python json api python-requests

我正在尝试向此网站发帖请求: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中运行它。 How i am running it

2 个答案:

答案 0 :(得分:0)

你有几次尝试过吗?您还应该检查res.text,可能存在与您的问题相关的错误响应。

也许你应该尝试代理? http://docs.python-requests.org/en/master/user/advanced/#proxies

上面的代码可以运行并返回:

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

答案 1 :(得分:0)

来自wiki的HTTP 403禁止:

  

HTTP 403是一个HTTP状态代码,表示客户端尝试与之通信的服务器理解该请求,但由于授权以外的原因而无法满足该条件。

     

错误403:“服务器理解了请求,但拒绝履行请求。授权无效,请求不应重复。”

也许服务器避免成为垃圾邮件。 (或者你的互联网有问题) 在某些情况下,这是因为缺少User-Agent。它可能有所帮助。 你可以查看这个问题。 Python requests. 403 Forbidden