经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » 编程经验 » 查看文章
gRPC入门学习之旅(九)
来源:cnblogs  作者:DotNet菜园  时间:2024/6/1 10:08:31  对本文有异议

 

 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文件,添加如下代码:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Text.Json;
  6. using System.Threading.Tasks;
  7. using Grpc.Net.Client;
  8. using Demo.GrpcService.Protos;
  9. namespace Demo.Grpc.Client
  10. {
  11. public class User
  12. {
  13. public string GetUserInfo()
  14. {
  15. // 使用https
  16.  
  17. const string urlHttps = "https://localhost:7149";
  18. using (var channel = GrpcChannel.ForAddress(urlHttps))
  19. {
  20. var client = new UserInfo.UserInfoClient(channel);
  21. UserInfoResult userInfo = client.GetUserInfo(new UserInfoRequest()
  22. {
  23. UserName = "Admin",
  24. Password = "12345"
  25. });
  26. //打印服务方法返回的结果
  27. Console.WriteLine($"{userInfo.UserName},{userInfo.Age},{userInfo.Name}");
  28. return JsonSerializer.Serialize(userInfo);
  29. }
  30. return string.Empty;
  31. }
  32. }
  33. }

 

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

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Windows;
  7. using System.Windows.Controls;
  8. using System.Windows.Data;
  9. using System.Windows.Documents;
  10. using System.Windows.Input;
  11. using System.Windows.Media;
  12. using System.Windows.Media.Imaging;
  13. using System.Windows.Navigation;
  14. using System.Windows.Shapes;
  15. namespace Demo.Grpc.Client
  16. {
  17. /// <summary>
  18. /// Interaction logic for MainWindow.xaml
  19. /// </summary>
  20.  
  21. public partial class MainWindow : Window
  22. {
  23. public MainWindow()
  24. {
  25. InitializeComponent();
  26. }
  27. private void btnGetUserInfo_Click(object sender, RoutedEventArgs e)
  28. {
  29. User usr = new User();
  30. txtMsg.Text = usr.GetUserInfo();
  31. }
  32. }
  33. }
 

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地址就成功了。

 

 

 

 

 

 

原文链接:https://www.cnblogs.com/chillsrc/p/18225606

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号