post请求参数是个json,会有各种问题

来源:4-5 使用类封装接口测试脚本

_静言_

2020-07-02

先说问题:
一个post请求,传参就一个{“province”: “四川省”}
请求头编码格式:content-type:application/json

import requests
import pprint
data = {"province": "四川省"}
url = 'http://192.168.0.95:3000/api/certCard/findCertCardPage'  
def send_post(url, data):
	headers = {"Content-Type": "application/json"}
    res = requests.post(url=url, data=data, headers=headers)
    return res.json()
pprint.pprint(send_post(url, data))

如果data直接使用 {“province”: “四川省”},实际传参是这样的:
province=%E5%9B%9B%E5%B7%9D%E7%9C%81
而且如果不传递编码格式,服务器会直接报服务器异常:
{‘code’: ‘000001’, ‘data’: {}, ‘msg’: ‘服务异常’, ‘status’: False}

这个和老师你说的不一样啊,data部分如果是json实际应该怎么处理?

写回答

1回答

_静言_

提问者

2020-07-02

如果把data赋值修改成 data = json.dumps({"province": "四川省"})  就能正常获取数据

但是,抓包发现请求的data值是这样的:{"province": "\u56db\u5ddd\u7701"}  进行了转码

0
3
Mushishi
回复
_静言_
哈哈,这个不一定要和我对上。只告诉你解决问题方法。
2020-07-03
共3条回复

Python接口自动化测试框架实战

主流框架Unittest与接口测试结合,带你深入学习接口自动化框架的设计与开发

1509 学习 · 844 问题

查看课程