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

Postman发送Protobuf格式POST请求遇415错误的解决咨询

解决Postman发送Protobuf POST请求报415错误的方案

你的问题核心是Postman的请求头或请求体格式不符合服务端要求,导致415 Unsupported Media Type错误。以下是具体配置步骤:

一、配置正确的请求头

服务端Post方法明确声明[Consumes("application/x-protobuf", "application/json")],必须确保Postman发送的请求包含正确的Content-Type:

  • 在Postman的「Headers」选项卡添加:
    • 键:Content-Type,值:application/x-protobuf
    • (可选)如果需要接收Protobuf格式响应,添加键:Accept,值:application/x-protobuf

二、构造合法的Protobuf请求体

Postman无法直接输入Protobuf二进制格式,可通过以下两种方式生成:

方式1:利用现有控制台客户端导出二进制数据

  1. 修改控制台项目的PostProtobufData方法,在生成data数组后添加文件写入代码:
    var data = stream.ToArray();
    // 新增:将序列化后的二进制数据写入文件
    System.IO.File.WriteAllBytes("item.protobuf", data);
    
  2. 运行控制台的Post方法,得到item.protobuf文件。
  3. 在Postman的「Body」选项卡,选择「binary」类型,点击「Select File」选择生成的item.protobuf文件。

方式2:使用Postman Protobuf插件生成请求体

  1. 从控制台导出Item的Protobuf定义:运行GetProtobufData方法,控制台会输出Item的.proto文件内容,将其保存为item.proto,内容示例:
    syntax = "proto3";
    message Item {
      int32 Id = 1;
      string Name = 2;
      int64 Value = 3;
    }
    
  2. 在Postman插件商店搜索并安装「Protobuf Support」插件。
  3. 在Postman的「Body」选项卡,选择「Protobuf」类型,点击「Import Proto」导入item.proto文件。
  4. 选择Item作为消息类型,填写对应字段值(如Id=5566677、Name=kpatel、Value=1234),插件会自动生成符合要求的二进制请求体。

三、验证服务端配置(可选)

确保你的ASP.NET Core项目已正确注册Protobuf格式支持,在Program.cs中应有类似代码:

builder.Services.AddControllers()
    .AddProtobufFormatters();

(你的控制台客户端能正常请求,说明此配置已存在,可跳过)

完成以上配置后,发送POST请求即可触发服务端断点,成功反序列化Protobuf消息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 15:54:58