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

如何用Python的Requests上传从URL下载的PDF至API?

用Python requests实现二进制PDF上传(从指定URL获取文件)

你不需要用PyPDF处理,直接通过requests获取PDF的二进制内容,再以binary形式上传到目标API即可,步骤如下:

实现步骤

  1. 从指定URL下载PDF二进制数据:用requests发送GET请求,直接获取文件的二进制内容(无需保存到本地)。
  2. 以binary方式上传到目标API:把下载到的二进制数据作为请求体,设置Content-Type: application/pdf后发送POST请求。

完整代码示例

import requests

# 1. 从指定URL下载PDF二进制内容
pdf_source_url = "https://example.com/source.pdf"  # 替换为你的PDF源URL
download_response = requests.get(pdf_source_url)
download_response.raise_for_status()  # 检查下载是否成功,失败则抛出异常
pdf_binary_data = download_response.content

# 2. 上传到目标API
target_api_url = "https://your-api-domain.com/upload-endpoint"  # 替换为你的API地址
upload_headers = {
    "Content-Type": "application/pdf",
    # 如果API需要认证,可在此添加对应头信息,比如:
    # "Authorization": "Bearer your_access_token"
}

upload_response = requests.post(
    target_api_url,
    data=pdf_binary_data,
    headers=upload_headers
)

# 验证上传结果
upload_response.raise_for_status()
print("上传成功,API响应:", upload_response.text)

关键说明

  • 下载PDF时,response.content直接返回字节流,这就是我们需要的二进制数据,无需解析或落地存储。
  • 上传时使用data参数传递二进制数据,完全对应Postman里的「binary」上传模式,配合Content-Type头确保API能正确识别文件类型。
  • 如果源PDF URL需要认证(比如带Cookie、Token),可以在requests.get中添加对应的headers参数补充认证信息。
  • raise_for_status()用于主动抛出请求异常,方便快速定位下载或上传环节的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 12:15:26