【发布时间】:2020-01-21 09:08:48
【问题描述】:
当我执行 GET 请求时,一切正常,但当我尝试 POST 请求时,它返回 404。
我正在开发与 Nagios 交互的 API: https://github.com/EyesOfNetworkCommunity/eonapi
这是我的 python GET 请求:
import requests
r = requests.get('https://device/eonapi/getAuthenticationStatus?username=test&apiKey=49fd4f56qs4dfs2sdf4')
print(r.json())
print(r.status_code)
结果:
{'api_version': '2.4.2', 'http_code': '200 OK', 'status': 'authorized'}
200
当我试图获取有关受监控主机的信息时的 POST 请求:
import requests
r = requests.post('https://device/eonapi/getHost?username=test&apiKey=49fd4f56qs4dfs2sdf4', data = {'hostName':'test1'})
print(r.status_code)
结果:
404
我不知道我做错了什么,我用 PHP 和 cURL 尝试了这些请求,但我仍然得到相同的结果。
【问题讨论】:
-
在标题中使用
'Content-Type': "application/json"并为 JSON 数据使用双引号。见stackoverflow.com/a/36038497/12409170 -
我试过但不幸的是仍然得到 404
import requests host = { "hostName":"test1" } headers = {'Content-type': 'application/json'} r = requests.post('https://device/eonapi/getHost?username=test&apiKey=49fd4f56qs4dfs2sdf4', data=host, headers=headers) print(r.status_code)