用的是 pytest 框架,实现从 yaml 文件读取测试数据,读取的方法如下:
yaml 里面存在中文,截取一段如下:
具体用例代码如下:
问题来了,服务端返回 500,提示参数数据错误,通过抓包发现,请求的 body 里面不是中文是 unicode
网上搜过解决方案,尝试解决无果,请问问题在哪里呢?感激不尽!
问题应该不在 http 请求,而是 json.dumps 方法,你在 dumps 里加上 ensure_ascii=False,再试试看
中文或者 unicode 应该不影响啊;中文变成 Unicode 的原因是 json.dumps 默认会将中文转成 Unicode,json.dumps(data, ensure_ascii=False) 这样可以保持中文
看下是不是格式传错了,body 是要 form 表单还是 json 格式的
谢谢各位,加上 ensure_ascii=False,但是不够,还要 encode(),不然会报错,正确如下: result = self.DeviceManage.send_post(url, (json.dumps(data, ensure_ascii=False)).encode(), header)
不用这么麻烦吧,底层如果是用 requests.post 的话,json=data 传递 json 数据,data=data 传递 form 表单数据
嗯,你有更好的写法嘛