首页 > 解决方案 > 请求库为 API Post 发送 json

问题描述

我正在尝试从以下位置连接到 API:https ://devzone.revulytics.com/docs/API/authentication.html#authentication-top

我发现了 Requests 库并安装了它,然后找到了这篇文章和其他一些文章,最后编译了这段代码:

import requests

apiURL = "http://api.revulytics.com"
header = {'Host': 'api.revulytics.com', 
          'Content-Type': 'application/json',
          'Accept': 'application/json'}
json = {"user": "testuser@test.com",
        "password": "mypassword1"}

r = requests.post(apiURL, headers=header, json=json)
print(r.status_code)

我把代码弄乱了很多,但它似乎仍然没有工作——我确实用自己的方式更改了用户和密码。

我在运行 status_code 时不断收到 404,这意味着我无法连接到 API。对此有什么想法吗?

标签: pythonjsonpython-3.xapipost

解决方案


404 表示没有名为 的端点/。根据您链接到的页面,端点是/auth/login.

所以你要

apiURL = "https://api.revulytics.com/auth/login"

这将使 404 消失。

这是我的脚本和响应

$ cat p.py
import requests

apiURL = "https://api.revulytics.com/auth/login"
header = {'Host': 'api.revulytics.com', 
          'Content-Type': 'application/json',
          'Accept': 'application/json'}
json = {"user": "testuser@test.com",
        "password": "mypassword1"}

r = requests.post(apiURL, headers=header, json=json)
print(r.status_code, r.json())

$ python3 p.py
403 {'status': 'AUTH ERROR', 'reason': 'Wrong credentials'}

推荐阅读