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

如何从HTTP GET响应中剥离Content-Disposition及其他HTTP头部信息?

去除Multipart响应中多余元数据的简便方法

你遇到的是标准的multipart/form-data响应结构,那些多余内容是**分隔边界(boundary)**和表单字段的元数据,要提取纯文件内容可以用下面这些简便方法:

命令行快速处理(适合临时操作)

如果是用命令行工具(比如curl)拿到响应,可以用awk或sed匹配边界和文件块:

  1. 先从响应头里获取实际的boundary值(响应的Content-Type头会包含boundary=xxxx,比如你的示例里是63bc29ef89bca3f8)
  2. 用awk脚本提取文件内容块:
# 假设响应存在response.txt中,boundary为63bc29ef89bca3f8
awk -v boundary="--63bc29ef89bca3f8" '
  $0 == boundary {in_file=0}
  in_file {print}
  /filename=/ {in_file=1; getline; getline}
' response.txt > pure_file_content

解释:找到包含filename=的块后,跳过两行(跳过元数据的空行),开始输出内容直到下一个boundary。

编程场景(推荐,更可靠)

如果是代码里调用API,直接用对应语言的multipart解析库,不用手动处理字符串:

  • Python:用requests库的话,响应对象的files属性会自动解析multipart内容,直接保存文件:
import requests

response = requests.get("第三方API地址")
# 假设目标文件是响应里的第一个文件
for name, file_obj in response.files.items():
    with open("target_file", "wb") as f:
        f.write(file_obj.read())
  • Java:用Apache HttpClient的MultipartEntityBuilder解析响应实体
  • Node.js:用formidable或busboy库处理multipart响应

关键提醒

不要硬编码boundary值,实际代码里要从响应的Content-Type头中提取:比如Python里可以用response.headers.get("Content-Type").split("boundary=")[1]拿到动态的boundary,避免因为API返回不同boundary导致处理失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 17:36:11