接口请求报错json格式问题
2021-05-07 19:31
1041 查看
##报错代码
import requests url = "http://*********/admin/v1.0/task/add" payload = { "alarmType": "2", "departmentId": 1382562817882931211, "taskReceive": "137709943148954820", "remark": "", "selectDoPolicyDate": 0, "finsihFirishPolicyDate": 2 } headers = { 'token': '3683c55b1f40410aacae864c9ad06e76', 'User-Agent': 'apifox/1.0.0 (https://www.apifox.cn)', 'Content-Type': 'application/json', } response = requests.post(url, headers=headers, data =payload) print(response.text.encode('utf8'))
##报错信息
b'{"code":500,"message":"JSON parse error: Unrecognized token \'alarmType\': was expecting (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\'); nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token \'alarmType\': was expecting (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\\n at [Source: (PushbackInputStream); line: 1, column: 11]"}'
接口工具测试没有问题 ##解决办法1: 首先安装demjson
pip install demjson
导入demjson包,然后请求时对参数进行格式化
import requests import demjson url = "http://********/admin/v1.0/task/add" payload = { "alarmType": "2", "departmentId": 1382562817882931211, "taskReceive": "137709943148954820", "remark": "", "selectDoPolicyDate": 0, "finsihFirishPolicyDate": 2 } headers = { 'token': '3683c55b1f40410aacae864c9ad06e76', 'User-Agent': 'apifox/1.0.0 (https://www.apifox.cn)', 'Content-Type': 'application/json', } response = requests.post(url, headers=headers, data =demjson.encode(payload)) print(response.text.encode('utf8'))
##返回结果
b'{"code":0,"message":"success"}'
##解决办法2: 导入json包,进行json格式转换
import requests import json url = "http://********/admin/v1.0/task/add" payload = { "alarmType": "2", "departmentId": 1382562817882931211, "taskReceive": "137709943148954820", "remark": "", "selectDoPolicyDate": 0, "finsihFirishPolicyDate": 2 } headers = { 'token': '3683c55b1f40410aacae864c9ad06e76', 'User-Agent': 'apifox/1.0.0 (https://www.apifox.cn)', 'Content-Type': 'application/json', } response = requests.post(url, headers=headers, data =json.dumps(payload)) print(response.json()) #print(response.text.encode('utf8'))
##返回结果
{'code': 0, 'message': 'success'}
相关文章推荐
- java 后台实现ajax post跨域请求传递json格式数据获取json数据问题
- SpringMVC中使用Ajax POST请求以json格式传递参数服务端通过request.getParameter("name")无法获取参数值问题分析
- Ajax请求ashx 返回 json 格式数据常见问题
- 请求第三方接口返回json格式数据的解析
- linux shell中curl 发送post请求json格式问题的处理方法
- java 使用URLConnection 请求json格式接口,使用实体类接收
- java实现HTTP的post请求 json格式中文乱码问题
- SpringMVC中使用Ajax POST请求以json格式传递参数服务端通过request.getParameter("name")无法获取参数值问题分析
- php curl post 请求接口,要求数据json格式,带中文解决请求失败,记一下。
- html中通过js获取接口JSON格式数据解析以及跨域问题
- Java 以post请求方式通过json格式调用Webservice接口
- 关于http接口开发中json格式数据编码问题处理
- java以json格式向后台服务器接口发送请求
- spring4.1 请求rest接口406问题解决(转换JSON)
- 在远程调用别人接口的时候,传输参数一般都是String类型的字符串,改字符串可以是json格式的,也可以是xml格式的,那么问题来了
- java以json格式向后台服务器接口发送请求的实例
- SpringMVC4.0实现rest风格接口,json格式请求和返回
- PHP中json_decode()json格式接口的问题
- java实现HTTP的post请求 json格式中文乱码问题
- 一个好用的测试服务器接口的工具(post请求,xml,json等数据格式)