国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

python - requests提交的json.dumps不能被服務器解析

瀏覽:158日期:2022-08-25 13:42:57

問題描述

背景:現有一看上去是內嵌IE應用程序A,可以做一些查詢等操作。

目的:通過借助Wireshark對應用程A的通信過程分析,借助python的requests的庫自行構造一個自己能掌控的程序B

狀況:在使用requests庫,加載json格式的POST數據,執行特定請求時,遇到對方服務器的報錯。

payload_data={'jsonstr':{'pagesize':10,'pageindex':1,'start':'2017-03-01','end':'2017-03-13','keyword':'張三','status':'0'}}r = requests.post(url, headers = headers_comm, data = json.dumps(payload_data))

Wireshark對程序A請求的偵聽:python - requests提交的json.dumps不能被服務器解析

自行構造請求時的報錯信息:python - requests提交的json.dumps不能被服務器解析

猜測這個請求的構造基本成功了,但對端應用程序解析我POST的數據時不能正常識別。嘗試過給json.dumps加, ensure_ascii=False的參數,但報錯依舊。如果這個猜測正確的話,POST數據應該怎樣正確dumps?如果這個猜測不正確,那么可能是哪里的原因?

問題解答

回答1:

data不需要json.dump,只需要將data中的jsonstr用json.dump來包括以下就可以了,應該是這樣,可以試試

回答2:

Response Code 是500,是對方反序列化時出錯了。根據exception信息,服務端因該是以下面方式進行反序列化的。

C#:

var jsonObj = (new JavaScriptSerializer()).Deserialize<IDictionary<string, string>>(jsonString);

你的payload_data格式錯了,是嵌套字典。

把payload_data改成:Python:

payload_data={'pagesize':10,'pageindex':1,'start':'2017-03-01','end':'2017-03-13','keyword':'張三','status':'0'}

就可以了。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 商河县| 丽江市| 金川县| 淮滨县| 秭归县| 汝州市| 正宁县| 太原市| 通州市| 文水县| 应城市| 怀集县| 马尔康县| 巴彦县| 巴林右旗| 龙江县| 和田市| 湟源县| 延津县| 平远县| 阜阳市| 中牟县| 台北县| 托克逊县| 微博| 彭山县| 枣强县| 固阳县| 聂拉木县| 临江市| 盐源县| 济源市| 芦溪县| 郓城县| 德令哈市| 临武县| 沭阳县| 郑州市| 文山县| 彭水| 江山市|