我知道这个问题已经在前面讨论过了,但是我无法找到适合我的用例的工作解决方案。
我们有一个返回数据的内部服务器(抱歉,没有可用的外部地址)。在端点上调用POST方法将返回JSON。我试着用Postman tool来检查是否收到有效的响应。当我使用邮递员时,我收到了预期的回复。不需要身份验证。
但是,Python客户端无法返回数据,并且接收到空响应。
代码段:import json
import requests
URL_PATH = "https://our.internal.server.rest.address"
HEADERS = {
'Content-Type': 'application/json'
}
DATA = '''{
"method" : "object.read",
"params" : "",
"id" : 142
}'''
S = requests.session()
R = S.post(URL_PATH, headers=HEADERS, json=DATA)
if R.ok:
print("Type: ", R.headers["Content-Type"])
print("Text: ", str(R.text))
print("JSON: ", R.json())
print("Content", R.content)
else:
R.raise_for_status()
S.close()
输出为:Type: application/json
Text: null
JSON: None
Content b'null'
你知道我的Python代码做错了什么吗?为什么没有返回数据,但是当使用单独的工具时?
我还尝试在post()中使用data=:S.post(URL_PATH, headers=HEADERS, data=json.dumps(DATA))
或者直接使用requests.post()跳过Session()。