{34;inputCodes":["6932608700850"],"terminal":{"status":1,"channel":"D002","storeCode":"2107","passage":"D002","storeName":"重百超市黄泥塝店","identity":"","maxProductCount":5,"posId":"D002"}}header={"client_id":"DataSync","sign":"46BA170CFC30C571358E59EDDA63B506","Content-Type":"application/json;charset=UTF-8"}
在利用 requests 库的 post 要求发送出去之后,做事端收到的不是中文,导致署名失落败,数据如下:
{"terminal": {"status": 1, "channel": "D002", "identity": "", "passage": "D002", "maxProductCount": 5, "posId": "D002", "storeName": "\u91cd\u767e\u8d85\u5e02\u9ec4\u6ce5\u585d\u5e97", "storeCode": "2107"}, "inputCodes": ["6932608700850"]}
希望在做事端中收到的数据中,中文仍旧是中文,由于有些做事端并没有此做处理。
办理方法:requests 库中,在处理 JSON 格式的要求时调用的 json.dumps 方法参数 ensure_ascii 默认为 True.表示序列化时对中文默认利用的 ascii 编码。
如果想要显示中文,则将此参数的值改为 False 即可。
源码修正:在 requests 源码的 models.py 文件中,找到 prepare_body 函数。找到如下图中的代码,在 comlexjson.dumps(json)里加个参数 ensure_ascii=False.
保存源码的修正之后,再次运行,在做事器端就能看到中文啦。
ps:
测试开拓工具包:appuim安装包、fiddler安装包(也有配套视频教程)、eclipse、git、jmeter、loadrunner、monkey、postman、soapul、Xmind等等
有须要的朋友可以私信小编“资料”免费领取