接口自动化测试时报:JSON parse error

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)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值