惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tenable Blog
月光博客
月光博客
雷峰网
雷峰网
WordPress大学
WordPress大学
博客园 - 司徒正美
Last Week in AI
Last Week in AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
Visual Studio Blog
H
Help Net Security
Engineering at Meta
Engineering at Meta
Google DeepMind News
Google DeepMind News
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
S
Security @ Cisco Blogs
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
爱范儿
爱范儿
W
WeLiveSecurity
J
Java Code Geeks
Forbes - Security
Forbes - Security
H
Hacker News: Front Page
T
Threatpost
The Cloudflare Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
N
Netflix TechBlog - Medium
Latest news
Latest news
V2EX - 技术
V2EX - 技术
小众软件
小众软件
T
The Blog of Author Tim Ferriss
A
Arctic Wolf
B
Blog RSS Feed
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
I
InfoQ
C
Check Point Blog
N
News | PayPal Newsroom
Cyberwarzone
Cyberwarzone
V
V2EX
TaoSecurity Blog
TaoSecurity Blog
P
Privacy & Cybersecurity Law Blog
Microsoft Security Blog
Microsoft Security Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
D
DataBreaches.Net
F
Fortinet All Blogs
阮一峰的网络日志
阮一峰的网络日志
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
IT之家
IT之家
K
Kaspersky official blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Google DeepMind News
Google DeepMind News
C
CXSECURITY Database RSS Feed - CXSecurity.com
www.infosecurity-magazine.com
www.infosecurity-magazine.com

博客园 - DotNet菜园

gRPC入门学习之旅(十) gRPC入门学习之旅目录 gRPC入门学习之旅(八) gRPC入门学习之旅(七) gRPC入门学习之旅(六) gRPC入门学习之旅(五) gRPC入门学习之旅(四) gRPC入门学习之旅(三) gRPC入门学习之旅(二) gRPC入门学习之旅(一) WPF入门教程系列三十 ——DataGrid验证 WPF入门教程系列二十九 ——DataGrid使用示例MVVM模式(7) WPF入门教程系列二十八 ——DataGrid使用示例MVVM模式(6) WPF入门教程系列二十八 ——DataGrid使用示例MVVM模式(5) WPF入门教程系列二十七 ——DataGrid使用示例MVVM模式(4) WPF入门教程系列二十六——DataGrid使用示例(3) WPF入门教程系列二十五——DataGrid使用示例(2) WPF入门教程系列目录 WPF入门教程系列二十四——DataGrid使用示例(1)
gRPC入门学习之旅(九)
DotNet菜园 · 2024-06-01 · via 博客园 - DotNet菜园

 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
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>

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