micro_service/demo1/cmd/client.go
2024-09-24 16:56:54 +08:00

66 行
1.6 KiB
Go

package cmd
import (
"context"
"fmt"
"code.widuu.com/widuu/micro_service/demo1/proto"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure"
"google.golang.org/grpc/status"
"google.golang.org/protobuf/types/known/anypb"
"google.golang.org/protobuf/types/known/emptypb"
)
func RunClient(port string) {
credential := insecure.NewCredentials()
conn, err := grpc.NewClient(port, grpc.WithTransportCredentials(credential))
if err != nil {
panic(err)
}
defer conn.Close()
client := proto.NewUserClient(conn)
rsp, err := client.Register(context.Background(), &proto.RegisterRequest{
Username: "test",
Password: "123456",
Email: "test@widuu.com",
Mobile: "13800138000",
Hobbies: []string{"football", "basketball"},
Sex: proto.Sex_Male,
})
if err != nil {
fmt.Println(status.FromError(err))
return
}
if rsp.GetCode() != 1 {
fmt.Println("Register Fail", rsp.GetMsg(), rsp.GetMessage())
return
}
fmt.Println(rsp.GetMsg(), rsp.GetMessage(), rsp.GetInfo())
// 登录
other, _ := anypb.New(&proto.Code{
Code: "0192E2",
})
rsp, err = client.Login(context.Background(), &proto.LoginRequest{
Username: "test",
Password: "123456",
Other: other,
})
if err != nil {
fmt.Println(status.FromError(err))
return
}
if rsp.GetCode() != 1 {
fmt.Println(rsp.GetMsg(), rsp.GetMessage())
return
}
fmt.Println("Login Success, Token:", rsp.GetToken(), rsp.GetInfo())
// 获取信息
rsp, err = client.GetUserInfo(context.Background(), &emptypb.Empty{})
if err != nil {
fmt.Println(status.FromError(err))
return
}
fmt.Println(rsp.GetMsg(), rsp.GetToken(), rsp.GetInfo()["username"])
}