鱼C论坛

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

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

[复制链接]
发表于 2024-2-27 21:29:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 愿时光陪你老_ 于 2024-2-27 22:25 编辑

​
我将httpcary里的请求里的请求头和body全部复制了,body通过data和json都试过都不行,有没有大佬帮忙解释一下呀
fiddle我也抓了试过重发都没啥问题,并且我将httpcary中的请求体复制到fiddle里编辑重发也没问题
最佳答案
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库会自动处理重定向,但有时您可能需要禁用此功能或手动处理重定向。

从上到下挨个排除,必有解决方式哈~
QQ图片20240227212716.png

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-2-27 21:29:36 | 显示全部楼层
首先,HTTP请求的返回状态码"未登录"(Unauthorized)意味着你发送的请求没有包含合法的身份验证凭据。这可能是因为在你用Python发送请求时,缺少了必要的身份验证信息。

当你使用工具如httpcary和fiddler发送请求时,它们会自动处理和插入请求头,并根据需要进行身份验证。但是在Python中,你需要手动设置请求头和身份验证信息。

以下是一个使用Python的示例代码来发送带有身份验证的HTTP请求的例子:
import requests

url = "http://example.com/api/endpoint"
headers = {
    "Authorization": "Bearer <your_token>",  # 替换成你的身份验证令牌
    "Content-Type": "application/json"  # 请求的内容类型
}
data = {
    "key1": "value1",
    "key2": "value2"
}

response = requests.post(url, headers=headers, json=data)

print(response.status_code)
print(response.json())

在这个例子中,我们使用`requests`库发送一个POST请求到指定的URL,并在请求头中包含了合适的身份验证信息。`Authorization`头部包含了身份验证令牌(token),而`Content-Type`头部指定了请求的内容类型。

请注意,你需要将代码中的`<your_token>`替换为你实际使用的身份验证令牌。另外,根据你的API服务提供商的要求,可能还需要调整其他的请求头和请求体的内容。

希望以上代码能够帮助你解决问题。如果问题仍然存在,可以提供更多关于你的情况和代码的信息,以便我们能提供更具体的帮助。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-2-27 21:35:11 | 显示全部楼层

回帖奖励 +1 鱼币

看你的状态是未登录,所以大概率是cookie问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-2-27 22:17:33 | 显示全部楼层
isdkz 发表于 2024-2-27 21:35
看你的状态是未登录,所以大概率是cookie问题

我直接复制的httpcary里的cookie的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-2-27 22:25:12 | 显示全部楼层
我将httpcary中的请求体复制到fiddle里编辑重发也没问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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库会自动处理重定向,但有时您可能需要禁用此功能或手动处理重定向。

从上到下挨个排除,必有解决方式哈~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-2-27 22:49:29 | 显示全部楼层
不二如是 发表于 2024-2-27 22:30
鱼油提到使用 requests 库来发送POST请求。

如果在Fiddler或其他HTTP调试工具中可以成功执行请求,并 ...

最后发现是cookie的编码问题。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-2-28 14:46:17 | 显示全部楼层

回帖奖励 +1 鱼币

学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-2-28 22:00:13 | 显示全部楼层

回帖奖励 +1 鱼币

6
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-2-29 08:50:21 | 显示全部楼层
cookie问题吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-2-29 08:53:19 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-3-1 10:50:02 | 显示全部楼层

回帖奖励 +1 鱼币

FishC 发表于 2024-2-27 21:29
首先,HTTP请求的返回状态码"未登录"(Unauthorized)意味着你发送的请求没有包含合法的身份验证凭据。这可 ...

来领币的,谢谢大哥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-1 10:50:08 | 显示全部楼层
闪光少年 发表于 2024-03-01 10:50
来领币的,谢谢大哥


抱歉,我无法提供加密货币或现实世界的金融资助。作为一个计算机教育专家,我可以帮助您解决与编程和计算机相关的问题。如果您有任何关于编程或计算机方面的问题,我将非常乐意帮助您。如有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-10 09:27:10 | 显示全部楼层

回帖奖励 +1 鱼币

学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-3-19 20:26:22 | 显示全部楼层

回帖奖励 +1 鱼币

1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-3-21 09:07:19 | 显示全部楼层

回帖奖励 +1 鱼币

加油
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-3-21 19:59:45 | 显示全部楼层

回帖奖励 +1 鱼币

学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-3-22 12:19:27 | 显示全部楼层

回帖奖励 +1 鱼币

育碧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-3-22 22:31:49 | 显示全部楼层

回帖奖励 +1 鱼币

cookie
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 10:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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