request.post 会对 application/x-www-form-urlencoded 数据进行双重编码

作者: potatosips创建于 2026年7月20日更新于 2026年7月20日

你检查过我们的读物吗?

[x] 我检查了阅读器

你跟踪过我们的麻烦解决吗?

  • 我跟着你的麻烦解决

你的问题有问题吗?

  • 我检查了老问题,开放和关闭

你检查过讨论吗?

  • 我读过讨论

你检查过这些吗?

环境

减记

  • FlareSolverr版本:主机在0f05ed8fc974b215c36892b5a30122e27fe3c671
  • 最后一个工作 FlareSolverr 版本:未知
  • 操作系统:Windows 11(单位级复制机)
  • 你用Docker:没有
  • FlareSolverr 用户代理(见日志跟踪或/结束点):不适用
  • 你用VPN:没有
  • 你在用代理服务器吗?
  • 测试这个问题的URL:任何期待应用程序/x-www-form-urlencode的终点

说明

□ 说明

`request.postData'作为`application/x-www-form-urlencode',但`post-request'将每个字段解码,然后以百分比编码,然后将其以临时的HTML形式放入。 浏览器再次形成编码器,将%s符号编码.

例如,一项请求有:

后数据 : “ space=hello+ world&encoded = 1% 26 2&dempty=”

应提交`你好世界'、`一和二'等值和一个空值。 相反,生成的表单包含“hello%2Bworld”和“1%262”等已编码的文字,在提交时再次编码。

`request.post' 也不验证`url'在进入浏览器-request流量之前是否存在,与`request.get'不同。

□ 预期行为

分析`postData'一次使用标准形式语义(包括将``+`'作为一个空间),只构建临时形式时使用HTML-escape,并在启动浏览器前拒绝缺失的`url'。

□ 建议的固定

使用`urlib.parse.parse qsl (., 保留 blank values=True)', %-编码完整数据URI而不是单个字段值,并添加缺失的`url'验证。 重点回归测试覆盖了外加标志, %-encoded ampers, 空白值,以及缺失的URL验证.

QQ 日志错误消息

页:1
不需要服务器出错;有效载荷腐败具有确定性,由一个集中的单位级复制器覆盖.

QQ 屏幕截图

无回复( N)

内容来源: FlareSolverr/FlareSolverr