背景:
现有一看上去是内嵌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请求的侦听:
自行构造请求时的报错信息:
猜测这个请求的构造基本成功了,但对端应用程序解析我POST的数据时不能正常识别。
尝试过给json.dumps加, ensure_ascii=False的参数,但报错依旧。
如果这个猜测正确的话,POST数据应该怎样正确dumps?
如果这个猜测不正确,那么可能是哪里的原因?
Les données ne nécessitent pas json.dump. Il vous suffit d'utiliser json.dump pour inclure le jsonstr suivant dans les données. Vous pouvez l'essayer
.Response Code
vaut 500, ce qui signifie que l'autre partie a fait une erreur lors de la désérialisation.Selon les informations d'exception, le serveur doit se désérialiser de la manière suivante.
C# :
Votre format
payload_data
est erroné, c'est un dictionnaire imbriqué.Remplacez
payload_data
par :Python :
C'est tout.