鱼C论坛

 找回密码
 立即注册
查看: 2264|回复: 18

[已解决]为什么httpcary和fiddle重发都行,但是用python发送返回就是未登录

[复制链接]
发表于 2024-2-27 22:30:30 | 显示全部楼层    本楼为最佳答案   

鱼油提到使用 requests 库来发送POST请求。

如果在Fiddler或其他HTTP调试工具中可以成功执行请求,并且复制相同的请求头和请求体到Python中却得到“未登录”的响应,基本就是由以下几个原因导致的:

  • Headers不完整或不正确:确保您复制了所有的请求头,包括那些可能看起来不重要的头(如User-Agent、Referer、Cookie等)。特别是Cookie头,这通常是用于维持会话状态的关键。
  • 请求体格式问题:有时候,服务器可能对请求体的格式有特定要求。您需要确保如果原始请求是以JSON格式发送的,那么在Python中也应该使用json参数,如果是表单形式,应使用data参数。
  • SSL/TLS验证问题:如果您的请求是通过HTTPS发送的,您可能需要在请求中添加一个参数来处理证书验证:verify=False。但这只应在调试时使用,因为它会使您的请求容易受到中间人攻击。
  • 时间戳和动态令牌:某些API请求可能包含时间戳或其他动态生成的令牌,这些可能在您复制时是有效的,但在稍后的请求中可能已经失效。
  • 会话状态:如果该请求依赖于之前请求中建立的会话状态,那么您需要确保这些状态(如登录会话的cookies)被存储并在随后的请求中正确使用。
  • 编码问题:确保请求体的编码类型和内容匹配。例如,JSON应该是UTF-8编码。
  • 重定向问题:有些请求可能会遇到重定向。默认情况下,requests库会自动处理重定向,但有时您可能需要禁用此功能或手动处理重定向。

从上到下挨个排除,必有解决方式哈~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-29 06:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表