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

如何通过Postman的Raw标签以二进制形式发送Zip文件?

问题分析与解决方案

你的核心问题在于错误地将二进制字节转换为ASCII形式的二进制字符串,这完全改变了原始数据的格式和大小:

  • 每个字节(8位)被转成不定长度的字符串(比如0x01变成"1"而非8位的"00000001"),最终发送的是这些ASCII字符,不是原始二进制数据,接收端自然无法解析。
  • Postman的Raw标签本质是处理文本数据,会基于指定的字符编码(默认UTF-8)对输入内容进行编码,直接填原始二进制会被破坏,所以必须用编码方式适配。

正确实现方式:用Base64编码发送

要通过Raw标签发送Zip二进制文件,需将文件编码为Base64字符串,接收端再解码回原始二进制。具体步骤如下:

1. 生成Zip文件的Base64编码字符串

替换你错误的Java代码,用以下方式生成正确的Base64:

import java.io.File;
import java.io.FileInputStream;
import java.util.Base64;

public class ZipToBase64 {
    public static void main(String[] args) {
        String filePath = "你的Zip文件路径";
        try (FileInputStream fis = new FileInputStream(new File(filePath))) {
            byte[] fileBytes = new byte[(int) new File(filePath).length()];
            fis.read(fileBytes);
            String base64Str = Base64.getEncoder().encodeToString(fileBytes);
            System.out.println(base64Str);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

2. 在Postman中配置Raw请求

  • 切换到Raw标签,选择Text格式(或保持默认)
  • 将生成的Base64字符串粘贴到输入框中
  • 设置请求头:
    • 添加Content-Type: application/octet-stream(或对应业务要求的类型)
    • 若接收端明确要求Base64编码,可添加Content-Transfer-Encoding: base64

3. 接收端处理

接收端收到请求后,需要将Base64字符串解码为字节数组,再还原为Zip文件:

// 示例:接收Base64字符串并解码
String receivedBase64 = "收到的Base64内容";
byte[] zipBytes = Base64.getDecoder().decode(receivedBase64);
// 将zipBytes写入文件或直接处理

补充说明

Postman的Raw标签不支持直接发送原始二进制数据,因为它是为文本设计的,任何非文本内容都会被字符编码转换破坏。如果不需要用Raw标签,直接用Binary标签是最直接的方案,无需编码转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 03:01:14