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

Python2.7下基于Requests库实现带文件上传与Auth头的HTTP POST请求

Python2.7下用requests实现带Authorization的form-data文件上传

我来帮你搞定这个问题!既然你已经在Postman里跑通了流程,把逻辑搬到Python2.7里其实没那么复杂,大概率是Postman生成的代码没考虑Python2.7的兼容细节,或者你没注意到版本适配的问题。

先给你直接上能用的代码,再拆解关键细节:

# 先确保安装兼容Python2.7的requests版本,2.27.1是最后支持Python2.7的版本
# 执行安装命令:pip install requests==2.27.1
import requests

# 替换成你的目标API地址
target_url = "https://your-api-endpoint.com/upload"
# 替换成你Postman里用的Authorization值,比如"Bearer xxxxxxx"或其他格式
auth_token = "Your-Authorization-Value-Here"
# 替换成你的本地图片文件路径
image_path = "/path/to/your/target-image.jpg"

# 构造请求头,只保留Authorization即可,其他headers requests会自动处理
headers = {
    "Authorization": auth_token
}

# 用with语句自动管理文件资源,避免手动关闭的麻烦
with open(image_path, 'rb') as image_file:
    # 构造form-data的文件参数,元组结构是(文件名, 文件对象, 图片MIME类型)
    files = {
        "input_image": (image_path.split('/')[-1], image_file, "image/jpeg")
    }
    # 发起POST请求
    response = requests.post(target_url, headers=headers, files=files)

# 查看响应结果(Python2.7里print是语句而非函数,注意语法)
print "响应状态码:", response.status_code
print "响应内容:", response.text

关键细节解释:

  • requests版本适配:Python2.7已停止维护,新版本requests(3.x及以上)不再支持它,必须安装2.27.1这个兼容版本,不然会直接报错。
  • 文件打开模式:一定要用rb(二进制只读)模式打开图片,否则上传的文件会损坏,这是Postman生成代码可能没特意强调的点。
  • form-data构造:files字典里的input_image对应一个元组,其中文件名可以自定义,但建议和原文件名保持一致;MIME类型要匹配图片格式,比如png用image/png,jpg用image/jpeg。
  • 请求头处理:只需要传入你需要的Authorization即可,Content-Type: multipart/form-data这类头requests会自动根据files参数生成,手动添加反而可能引发格式冲突。

Postman生成代码的常见坑:

Postman生成的代码有时会自动添加多余的请求头(比如手动指定Content-Type),或者用了Python3的语法(比如print()函数而非语句),这些在Python2.7里都会触发错误,照着上面的代码写就能避开这些问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:41:03