使用 gRPCurl 调试.NET 5的gPRC服务
介绍
你用过 Curl 吗?这个工具允许你通过 http 来发送数据,现在有一个适用于gGRPC的工具,gRPCurl,在本文中,我将介绍如何下载安装这个工具,然后通过这个工具调试我们.NET 5上面的gGRC程序。

安装 gRPCurl
gRPCurl 基于GO语言开发,所以,你要安装GO环境,可以在这里下载, https://golang.org/doc/install,它的安装非常简单,您只需要运行安装程序就可以了!

安装完GO环境以后,还需要设置 Windows环境变量,然后使用管理员身份打开PowerShell,运行下边两个命令:
go get github.com/fullstorydev/grpcurl/...
go install github.com/fullstorydev/grpcurl/cmd/grpcurl
如果安装成功,则可以通过运行以下的命令进行测试:
grpcurl --help
你应该在PowerShell窗口中看到以下内容:

ASP.NET Core gRPC
为了使gRPCurl有效,它需要了解gRPC消息和端点定义,有两种方法:反射。我将向您展示如何使用反射,因为这是.NET中最简单的方法,为了能够使用Reflection,使用以下命令安装:
Install-Package Grpc.AspNetCore.Server.Reflection -Version 2.34.0
然后,使用 services.AddGrpcReflection()和 endpoints.MapGrpcReflectionService()方法为ASP.NET Core gRPC应用程序配置, 第一个启用gRPC的反射,第二个是通过反射向gRPCurl提供示例端点和消息信息的端点:
using CountryService.Web.Services;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
namespace CountryService.Web
{
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddGrpc();
services.AddGrpcReflection();
services.AddSingleton<CountryManagementService>();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapGrpcService<CountryGrpcService>();
endpoints.MapGrpcReflectionService();
});
}
}
}
使用 gRPCurl
通过运行以下命令列出所有可用的gRPC服务:
grpccurl localhost:5001 list

通过运行以下命令,列出指定gRPC服务的所有可用gRPC端点:
grpccurl localhost:5001 list YourgRPCServiceFullName

通过运行以下命令来调用一个获取列表的端点:
grpcurl localhost:5001 gRPCDemo.v1.CountryService/GetAll
通过运行一下命令,来获取一个元素,它需要传入JSON参数:
grpcurl localhost:5001 -d 'JSON字符串' gRPCDemo.v1.CountryService/Get

总结
这是gRPCurl的简单教程, gRPCurl具有很多功能,如果您想了解更多信息, 我建议你可以在这里找到更多的api,https://github.com/fullstorydev/grpcurl
原文作者: Anthony Giretti
原文链接:https://anthonygiretti.com/2021/01/13/grpc-asp-net-core-5-test-grpc-endpoints-with-grpcurl/
最后
欢迎扫码关注我们的公众号 【全球技术精选】,专注国外优秀博客的翻译和开源项目分享,也可以添加QQ群 897216102

使用 gRPCurl 调试.NET 5的gPRC服务的更多相关文章
- 使用 gRPC-UI 调试.NET 5的gPRC服务
在上一篇文章中,我介绍了gRPCurl一个命令行工具,该工具可用于测试gRPC服务的端点,在本文中,我将向您介绍 gRPC-ui, 它可以作为Web工具使用,有点像Postman,但用于gRPC AP ...
- 记录一个调试REST风格的web服务的client
coogle浏览器的advanced rest client很好用,记录一下,脑子不好,容易忘,,可以在chrome 的网上应用店添加 Rest client是用来调试REST风格的Web服务,接收P ...
- 使用 grpcurl 通过命令行访问 gRPC 服务
原文链接: 使用 grpcurl 通过命令行访问 gRPC 服务 一般情况下测试 gRPC 服务,都是通过客户端来直接请求服务端.如果客户端还没准备好的话,也可以使用 BloomRPC 这样的 GUI ...
- Windows服务调试小结(附Demo)
本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 阅读目录 介绍 搭建环境 调试方式 Demo下载 本文版权归mephisto和博客园共有,欢迎转载,但须 ...
- Windows服务的快速搭建与调试(C#图解)
Windows服务的快速搭建与调试(C#图解) 目录 一.什么是Windows 服务? 二.创建Windows 服务与安装/卸载批处理. 三.调试Windows 服务. 正文 一.什么是Windo ...
- 如何调试 Windows 服务
概要 本文分步介绍了如何使用 WinDbg 调试程序 (windbg.exe) 调试 Windows 服务. 要调试 Windows 服务,可以在服务启动后将 WinDbg 调试程序附加到托管该服务的 ...
- VS 2010一步步开发windows服务(windows service)
基于0起步来创建一个服务,做到简单的记录时间日志功能,其具体招行方法可自行添加. 1.创建服务 2.删除默认服务文件 3.添加自己的服务文件 4.更改启动项目 5. 引用 using System.T ...
- Asp.net(C#) windows 服务{用于实现计划任务,事件监控等}
什么是windows服务? 一个Windows服务程序是在Windows操作系统下能完成特定功能的可执行的应用程序.Windows服务程序虽然是可执行的,但是它不像一般的可执行文件通过双击就 ...
- ndk学习6: 使用gdb调试ndk程序一
生成debug版程序 方法一: 使用ndk-build编译时,加上如下参数NDK_DEBUG=1,之后生成so文件之外,还会生成gdbobserver,gdb.setup调式文件 方法二: 修改A ...
随机推荐
- Spring Boot 最简单的解决跨域问题
跨域问题(CORS) CORS全称Cross-Origin Resource Sharing,意为跨域资源共享.当一个资源去访问另一个不同域名或者同域名不同端口的资源时,就会发出跨域请求.如果此时另一 ...
- hive行存储与列存储
首先判断hive表是行存储还是列存储 判断方法: 1.使用hiveSQL"show create table table_name",这种方式,可以查看建表时候指定的那种方式; 2 ...
- vue 循环结构 v-for
循环结构 v-for 循环数组 用于循环取得数据,类似于js中for-in循环 ,其中in左侧为值,其名称可以自定义,in后为想要取出数据的变量名 运行可以得到结果 in左侧不仅仅只可以放一个值,不仅 ...
- 移动端 canvas基础1
一.canvas画布 Canvas是HTML5中新出的一个元素,开发者可以通过JS脚本动态绘制图像. #1. 创建canvas画布 在页面中创建canvas标签,并设置其id和宽高 (不要通过css设 ...
- python 协程并发下载图片
1 import aiohttp 2 import asyncio 3 import time 4 5 async def dl_coroutine(session,url): 6 print('开始 ...
- RocketMQ(七):高性能探秘之MappedFile
RocketMQ作为消息中间件,经常会被用来和其他消息中间件做比较,比对rabbitmq, kafka... 但个人觉得它一直对标的,都是kafka.因为它们面对的场景往往都是超高并发,超高性能要求的 ...
- 流程控制之☞ while 和 for 的故事
学习三连鞭... 什么是循环? 为什么要有循环? 如何用循环? 循环的基本语法:while 和 for 先来看while循环: while条件:首先得是个循环体. 1.如果条件为真,那么循 ...
- 恶补了 Python 装饰器的六种写法,你随便问~
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 今天给大家分享一下关于装饰器的知识点,内容非常干,全程高能,认真吸收看完,一定会对装饰器有更深的理解 ...
- .Net Core 审计日志实现
前言: 近日在项目协同开发过程中出现了问题,数据出现了异常:其他人员怀疑项目数据丢失程序存在问题.于是通过排查程序提供的审计日志最终还原了当时操作及原因. 可见审计日志在排查.定位问题是相当有用的,那 ...
- 远程调用get和post请求 将返回结果转换成实体类
package org.springblade.desk.utils; import org.apache.http.client.ResponseHandler; import org.apache ...