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

使用Python通过带认证的REST API获取PDF:无需二次请求的方法咨询

解决方案

首先需要明确:你调用的API第一次响应仅返回PDF的下载链接,PDF文件内容并未包含在这次响应中,因此无法绕过二次请求直接获取PDF。但可以通过代码自动化完成解析链接、下载保存的全流程,无需手动操作。

以下是优化后的实现代码:

import requests

# 创建会话,复用认证状态,避免重复验证
with requests.Session() as session:
    # 设置认证信息
    session.auth = ("USERNAME1234", "PASSWORD1234")
    
    # 发起第一次请求获取PDF链接
    resp = session.get("https://API.EXAMPLE.com/sub/sub/file")
    resp.raise_for_status()  # 自动处理请求错误
    
    # 解析响应JSON,提取PDF下载链接
    data = resp.json()
    pdf_url = data[0]["Attachments"][0]["Url"]
    
    # 发起第二次请求下载PDF并保存
    pdf_resp = session.get(pdf_url)
    pdf_resp.raise_for_status()
    
    # 保存PDF文件,文件名可根据需求修改
    with open("downloaded_file.pdf", "wb") as f:
        f.write(pdf_resp.content)

代码说明:

  • 使用requests.Session()创建会话,自动保存认证后的Cookie,第二次请求无需重复传入auth参数,更高效且符合API认证逻辑。
  • 加入resp.raise_for_status(),如果请求失败(比如401、404)会直接抛出异常,方便排查问题。
  • 自动解析JSON提取PDF链接,无需手动复制或定位。
  • 直接将PDF响应内容写入本地文件,完成自动化下载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 19:20:50