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

C# VS2022开发的gRPC服务Postman调用异常问题求助

解决C#/VS2022 gRPC服务无法被Postman调用的问题

我之前也踩过类似的坑,咱们一步步拆解问题,搞定这个调用问题:

为什么最初的Raw HTTP请求会失败?

首先得明确:gRPC默认是基于HTTP/2二进制协议传输Protobuf数据的,完全不是你熟悉的JSON格式REST API。你直接发{"Name" : "testing grpc http"}这种JSON请求,服务端根本没法解析(所以连日志都没打),Postman自然会返回格式错误。

而HTTPS端点的HTTP/2 over TLS was not negotiated错误,是因为你用HTTP/1.1的请求格式去访问了一个只支持HTTP/2的端点,协议协商直接失败了。

用Postman正确调用gRPC服务的步骤

后来你尝试用Postman的gRPC请求功能但报Invalid protocol: https,问题出在端点的格式写错了,正确的姿势是:

1. 先确认服务端的HTTP/2配置

打开你的Program.cs,确保Kestrel正确配置了HTTP/2(.NET 6+模板默认支持,但显式配置更稳妥):

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddGrpc();

// 配置Kestrel协议支持
builder.WebHost.ConfigureKestrel(options =>
{
    // HTTP端点:同时支持HTTP1和HTTP2(方便调试)
    options.ListenLocalhost(5046, o => o.Protocols = HttpProtocols.Http1AndHttp2);
    // HTTPS端点:只支持HTTP2(gRPC推荐配置)
    options.ListenLocalhost(7046, o =>
    {
        o.Protocols = HttpProtocols.Http2;
        o.UseHttps(); // 用VS生成的开发证书
    });
});

var app = builder.Build();
app.MapGrpcService<GreeterService>();
app.Run();

2. Postman里创建正确的gRPC请求

  • 打开Postman,点击「New」→ 选择「gRPC Request」
  • 在「Server URL」里填写:
    • HTTP端点:grpc://localhost:5046(注意是grpc://不是http://)
    • HTTPS端点:grpcs://localhost:7046(注意是grpcs://不是https://)
  • 点击「Refresh」,Postman会自动拉取服务的gRPC定义;如果拉取失败,直接手动上传你的Greeter.proto文件
  • 选择Greeter服务下的SayHello方法
  • 请求体填写Protobuf格式的参数(注意字段名是小写的name,和proto定义一致):
    {
      "name": "testing grpc postman"
    }
    
  • 点击「Invoke」就能正常调用了

3. 解决HTTPS的开发证书信任问题

如果用grpcs://调用时遇到证书错误,因为VS生成的是自签名开发证书,Postman默认不信任:

  1. 打开PowerShell,导出开发证书:
    dotnet dev-certs https --export-path "C:\temp\aspnetcore-dev-cert.pfx" --password "yourpassword"
    
  2. 打开Postman的「Settings」→「Certificates」→「Client Certificates」,点击「Add Certificate」:
    • Host填localhost:7046
    • 选择刚才导出的pfx文件,输入设置的密码
  3. 保存后重新调用HTTPS端点即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 00:32:40