Python模拟LogMeIn表单POST请求添加name参数报错如何解决
问题排查及解决方案
语法错误修复
你添加name参数后报错的首要原因是Python字典语法错误:"name": "Conglomo - Rocko"行末尾缺少逗号,导致代码无法正常解析。
修正后的请求体结构如下:
json_payload = { "name": "Conglomo - Rocko", "EntryID": "327911", "tracking0": "64" }
接口适配说明
如果修正语法后仍无法正常下载exe文件,是目标接口的参数接收逻辑导致的:该LogMeIn接口的name参数仅支持从URL查询字符串读取,不识别POST请求体中携带的对应字段,这也是你找到的拼接URL方案生效的原因。
标准可运行代码
无需手动拼接编码后的URL,直接使用requests库自带的params参数传递查询参数即可,写法更规范:
import requests # POST请求体参数 post_data = { "EntryID": "327911", "tracking0": "64" } # URL查询参数 url_params = { "name": "Conglomo - Rocko" } resp = requests.post( url="https://secure.logmeinrescue.com/Customer/Download.aspx", data=post_data, params=url_params ) with open("supportlmi.exe", "wb") as f: f.write(resp.content)
内容的提问来源于stack exchange,提问作者user16660683
相关产品推荐
相关产品推荐

