在发出 Python POST 请求之前,我们是否需要执行 json.dumps 和编码?



问题1(在发出Python POST请求之前,我们需要做json.dumps和编码吗?

通常请求是:

response = requests.post('https://httpbin.org/post', json={'key':'value'})

问题2(

是否建议像下面那样做?

x1 = {'key':'value'}
x2 = json.dumps(x1)
x3 = x2.encode()
response = requests.post('https://httpbin.org/post', json=x3)

问题3(在发出Python POST请求之前,我们什么时候需要做json.dumps和编码?

不,如果使用json参数,它应该是一个字典。从文档中:

json –(可选(要在请求正文中发送的 JSON 可序列化 Python 对象。

您只需要在发出发布请求之前使用转储数据,如下所示-

url = "http://localhost:8080"
obj = {'City': 'Delhi', 'Country': 'India', 'message': 'Hello Team!'}
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
requests.post(url, data=json.dumps(obj), headers=headers)

注意:我在测试转储期间观察到的内容在 POST 请求中不是必需的。它也应该只适用于data=obj