1.报错信息,如下
{
"title" : "Bad Request",
"status" : 400,
"detail" : "JSON parse error: Unrecognized token 'username': was expecting ('true', 'false' or 'null'); nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'username': was expecting ('true', 'false' or 'null')\n at [Source: (PushbackInputStream); line: 1, column: 10]",
"path" : "/getToken",
"message" : "error.http.400"
}
2.代码
import requests
url = 'http://10.165.153.210/getToken'
headers = {
'Content-Type': 'application/json'
}
payload = {
'username': 'pad_view',
'password': '6368da1213cd4c4538128a0e9acd0288'
}
res = requests.post(url=url,method='post', data=payload, headers=headers)
print(res.text)
3.原因
请求传参时,json字符串和字典,看起来一样,但是后台序列化格式还是有区别的。因此,传入data时会报json解析错误
4.解决方法
将字典对象转换成json字符串
4.1导入json
import json
4.2将字典对象转换成json字符串
payload = json.dumps({ 'username': 'username', 'password': 'password' })
4.3 完整的修改代码,如下
import requests
import json # 导入json
url = 'http://10.165.153.210/getToken'
headers = {
'Content-Type': 'application/json'
}
# 将字典对象转换成json字符串,使用json.dumps()方法
payload = json.dumps({
'username': 'pad_view',
'password': '6368da1213cd4c4538128a0e9acd0288'
})
res = requests.post(url=url,method='post', data=payload, headers=headers)
# 打印响应的信息
print(res.text)