1、创建一个grpc服务

2、编写一个test.proto文件

syntax = "proto3";

option csharp_namespace = "GrpcService";

package test;

service TestPro{
	rpc Test01 (TestRequest) returns (TestResult);
}

//返回结果
message TestResult{
	string name =1;
	string password = 2;
}

//返回结果
message TestRequest{
	string name =1;
	string password = 2;
}

3、在项目文件中加上路径

4、点击生成将会看到自动生成的cs文件

注:如果未自动生成代表存在问题

5、编写服务

public class Test01Service : TestPro.TestProBase
{
    public override Task<TestResult> Test01(TestRequest request, ServerCallContext context)
    {
        return Task.FromResult(new TestResult()
        {
            Name = request.Name,
            Password = request.Password,
        });
    }
}

6、运行,成功后创建一个客户端,无论是不是grpc工程都可以。添加包

7、将上传创建的服务端的文件拷贝过来,并在项目文件中添加路径

8、创建api然后运行

/// <summary>
/// grpc调用测试
/// </summary>
/// <returns></returns>
[HttpGet("testGrpc01")]
//可以返回的状态码
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
//swagger归属不同版本
[ApiExplorerSettings(GroupName = "v2")]
public string TestGrpc01()
{
    string url = "http://localhost:5123";

    using (var channel = GrpcChannel.ForAddress(url))
    {
        var client = new TestPro.TestProClient(channel);
        var reply = client.Test01(new TestRequest()
        {
            Name = "Test传递",
            Password = "passwordc传递"
        });

        Console.WriteLine($"密码:{reply.Password},name:{reply.Name}");
    }

    return "ok";
}

Logo

一起探索未来云端世界的核心,云原生技术专区带您领略创新、高效和可扩展的云计算解决方案,引领您在数字化时代的成功之路。

更多推荐