• gRPC入门学习之旅(九)


     gRPC入门学习之旅(一)

     

    3.10、客户端编译生成GRPC类

    1. 在“解决方案资源管理器”中,使用鼠标左键选中项目名称“Demo.Grpc.Common”,然后单击鼠标右键,在弹出的快捷菜单中选择“重新生成”菜单项。

    2. 在“解决方案资源管理器”中,使用鼠标左键选中项目名称“Demo.Grpc.Common,在弹出的快捷菜单中选择“在文件资源管理器中打开文件夹”菜单项。如下图。

     

    3.我们打开“文件资源管理器”,进入到Demo.Grpc.Common\obj\Debug\ net7.0 目录,发现此时目录下也有与服务端一样的4个.cs文件,就是GRPC协议文件对应的类文件,如下图所示:

    3.11、gRPC服务的https调用

    1.在服务端项目(Demo.GrpcService)中,由Visual Studio 2022在创建项目时默认配置了两个地址,让我们来调用。2个地址分别为:http://localhost:5209https://localhost:7149, gRPC客户端会使用到这2个地址,目的是给客户端请求请求地址,服务端将监听这两个端口。

    2. 在Visual Studio 2022的“解决方案资源管理器”中,使用鼠标右键单击“Demo.Grpc.Client”项目名称,在弹出菜单中选择“添加--> 类”。 在“添加新项”对话框中将类命名为 User,然后选择“添加”。

    3. 在Visual Studio 2022的“解决方案资源管理器”中,使用鼠标双击打开刚才创建的User.cs文件,添加如下代码:

    复制代码
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Text.Json;
    using System.Threading.Tasks;
    using Grpc.Net.Client;
    using Demo.GrpcService.Protos;
    
    namespace Demo.Grpc.Client
    {
    
            public class User
            {
    
                public string GetUserInfo()
    
                {
    
               // 使用https
    
                const string urlHttps = "https://localhost:7149"; 
    
                using (var channel = GrpcChannel.ForAddress(urlHttps))
    
                {
    
                    var client = new UserInfo.UserInfoClient(channel);
    
                    UserInfoResult userInfo = client.GetUserInfo(new UserInfoRequest()
                    {
                        UserName = "Admin",
                        Password = "12345"
                    });
    
                    //打印服务方法返回的结果
                    Console.WriteLine($"{userInfo.UserName},{userInfo.Age},{userInfo.Name}");
                    return JsonSerializer.Serialize(userInfo);
                }
    
                return string.Empty;
            }
    
            }
    
        }
    复制代码

     

    4. 在Visual Studio 2022的“解决方案资源管理器”中,使用鼠标双击打开windows.xmal.cs文件,添加如下代码:

    复制代码
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
     
    
    namespace Demo.Grpc.Client
    {
        /// 
        /// Interaction logic for MainWindow.xaml
        /// 
    
        public partial class MainWindow : Window
        {
    
            public MainWindow()
            {
    
                InitializeComponent();
    
            }
    
            private void btnGetUserInfo_Click(object sender, RoutedEventArgs e)
            {
    
                User usr = new User();
                txtMsg.Text = usr.GetUserInfo();
    
            }
    
        }
    
    }
    复制代码
     

    5.在Visual Studio 2022,按F5,启动。会弹出如下图的错误信息。

     

    6.在Visual Studio 2022中将“Demo.Grpc.Client”项目中的Protos目录删除。

    7. 在Visual Studio 2022中将“Demo.Grpc.Client”项目中的“依赖项”中点击右键,在弹出菜单中选择“添加项目引用”。在弹出的“引用管理器”中选择“Demo.Grpc.Common”,然后点击“确定”按钮。如下图。

    8.Demo.Grpc.Client项目经过上述步骤之后,项目结构如下图。

    9.在Visual Studio 2022中按钮 F5,或点击工具栏上的“运行”按钮,启动Demo.Grpc.Client应用程序。此次应用程序运行正常,出现了窗口,如下图,点击“用户信息”按钮,调用gRPC服务端提供的https地址就成功了。

     

     

     

     

     

     

  • 相关阅读:
    790.多米诺和托米诺平铺(DP)
    Matlab 方位角计算之二
    机器学习(二十六):LightGBM 模型
    linux之目录结构
    网络空间内生安全数学基础(1)——背景
    微服务中的鉴权该怎么做?
    Shell之基础概念和变量
    算法总结--搜索
    JAVA深化篇_36—— Java网络编程中的常用类
    OpenVPN安装部署详解
  • 原文地址:https://www.cnblogs.com/chillsrc/p/18225606