Post 请求可以通过 Proxyman 工作,但不能通过 Python 工作

问题描述 投票:0回答:1

我需要向 API 发送发布请求:

  • 通过 Proxyman 发送请求时,它工作正常
  • 我尝试使用相同的确切数据(双重和三次检查)来发送发布请求,但一直被 API 阻止(状态代码 401)

现在更奇怪了:我通过 Proxyman 打开了一个终端窗口,它能够捕获来自 python 库的流量。在那里运行相同的脚本完全可以正常工作。

我也有 logged the trafic,唯一的区别似乎是终端窗口通过 Proxyman 首先发送一个 connect 方法。

我发送的数据包含登录详细信息,因此遗憾的是我无法包含完整的请求,如果有帮助,我将添加一个片段。

import requests

data = {"user": {"password": "mypassword123!", "email": "[email protected]"},
        "scope": "offline"}

headers = {
    "Host": "auth.site.com",
    "Accept-Language": "de-DE,de;q=0.9",
    "X-Site-Locale": "de",
    "X-Site-Device": "2OH3AB9F-2KDA-4203-B1BD-BC7D23598DD9",
    "X-Site-Device-Type": "ios",
    "X-Site-Platform-Version": "iOS 4.71.0 (6575)",
    "User-Agent": "Site - iOS(Release) - de - iPhone9,3 - iOS 15.7.7",
    "Accept": "application/json",
    "Accept-Encoding": "gzip, deflate, br",
}

response = requests.post(url="https://auth.site.com/v2/users/sessions", headers=headers, json=data)

请注意,我也更改了 API 的 URL。

有谁知道我如何调试我的问题?这里可能有什么问题?

python post https python-requests proxyman
1个回答
0
投票

默认情况下,Python 不尊重系统 HTTP 代理配置,因此 Proxyman 或其他 Web 代理应用程序无法捕获它。

您可以使用自动设置工具,只需单击一下即可帮助您完成此操作。

它会自动执行:

  1. 覆盖您的 Python 环境的 HTTP 代理
  2. 信任Proxyman自签名证书
  3. ✅ 开箱即用地捕获您的 Python 请求

© www.soinside.com 2019 - 2024. All rights reserved.