欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

grpc go json

錢琪琛2年前9瀏覽0評論

GRPC是Google開源項目,可用于高性能、開放源代碼、通用RPC框架。

Go語言是一門編譯型語言,它使用了通用的編程語言范型,但是它并不像Java、Python使用虛擬機。Go語言的結(jié)構(gòu)和C語言類似,但是加入了面向?qū)ο蟮奶匦裕瑫r也在語言層面支持CSP并發(fā)模式。

JSON是一種數(shù)據(jù)格式。JSON是一種輕量級的數(shù)據(jù)交換格式,易于閱讀和編寫,同時也易于機器解析和生成。JSON是獨立于語言的文本格式,但是也使用了類似于C語言家族的習慣。

package main
import (
"context"
"encoding/json"
"fmt"
"github.com/golang/protobuf/proto"
"google.golang.org/grpc"
pb "google.golang.org/grpc/examples/helloworld/helloworld"
)
type User struct {
Name string `json:"name"`
Age  int    `json:"age"`
}
func main() {
conn, err := grpc.Dial("localhost:50051", grpc.WithInsecure())
if err != nil {
fmt.Printf("did not connect: %v", err)
return
}
defer conn.Close()
c := pb.NewGreeterClient(conn)
// json data
jsonData := &User{
Name: "John",
Age:  20,
}
jsonBytes, _ := json.Marshal(jsonData)
// grpc message
message := &pb.HelloRequest{
Name: "world",
JsonData: jsonBytes,
}
// grpc call
response, err := c.SayHello(context.Background(), message)
if err != nil {
fmt.Printf("could not greet: %v", err)
return
}
fmt.Printf("Greeting: %s", response.Message)
}

上述代碼演示了如何將JSON數(shù)據(jù)傳遞到GRPC服務器。在此代碼中,我們使用Go中的標準JSON庫來將User類型的數(shù)據(jù)編碼為JSON字節(jié)數(shù)組。然后將其填充到HelloRequest請求消息中并將其傳遞到Greeter服務器的SayHello方法。