You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Pypac发起带双因素代理认证的Python GET REST请求

使用PyPAC发起带双因素代理认证的Python GET请求

我来帮你把代码补全并优化下,确保能正确发起需要代理2FA认证的REST API请求。你的思路是对的,但有几个关键细节需要调整,比如一定要用配置好的PACSession来发起请求,而不是直接用requests.get,不然之前设置的代理和认证不会生效。

完整示例代码

import requests
from pypac import PACSession, get_pac
from requests.auth import HTTPProxyAuth

# 1. 获取PAC代理配置文件
pac = get_pac(url='https://abcd.com')

# 2. 创建PACSession并设置代理双因素认证
# 注意:Yubikeycode是实时生成的一次性验证码,每次请求都需要更新
session = PACSession(pac)
session.proxy_auth = HTTPProxyAuth('rkrisha', '实时生成的Yubikey验证码')

# 3. 配置API请求信息
api_url = 'http://company.com/sampleapi/v1/logs/errors?startDt=2018-03-26&endDt=2018-03-26'
# 根据API实际要求填写Authorization头,比如Bearer Token格式
headers = {
    "Authorization": "Bearer 你的API访问令牌",
    "Content-Type": "application/json"  # 如果API要求JSON格式的话
}

# 4. 用配置好的session发起GET请求
try:
    response = session.get(api_url, headers=headers)
    # 检查请求是否成功
    response.raise_for_status()
    print("请求成功!")
    print(response.json())  # 如果返回JSON数据的话
except requests.exceptions.RequestException as e:
    print(f"请求失败:{e}")

关键注意事项

  • 必须使用session.get():直接调用requests.get()不会应用我们配置的代理和认证信息,一定要用创建好的PACSession实例来发起请求。
  • 2FA验证码的实时性:Yubikey生成的是一次性验证码,不能硬编码在代码里,每次请求前都需要生成新的验证码填入。
  • API Authorization头:根据你调用的API实际要求填写,常见的有Bearer Token、Basic Auth等格式,确保头信息符合API的认证规范。
  • 异常处理:加上异常捕获可以更好地排查请求失败的原因,比如代理连接问题、API认证失败、网络错误等。

内容的提问来源于stack exchange,提问作者user5574984

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:15:45