如何解决设置GRPC标头响应GO
我在golang中使用grpc,并希望将标题设置为这样
我已经尝试了两种方法。首先,我正在使用此answer并可以正常工作,但是标题正在向其密钥添加grpc-metadata-
我的问题是如何删除该词?以及如何生成一些值,例如日期,内容长度,缓存控制等,我是否必须像这样在我的代码中对其进行硬编码?
header := metadata.New(map[string]string{"Access-Control-Allow-Headers": "X-Requested-With,content-type,Accept,Authorization","Server": "val2"})
grpc.SendHeader(ctx,header)
另一种方法是我正在使用http.Responsewritter。这是我的代码,例如:
main.go
var (
config *envcfg.Envcfg
logger *logrus.Logger
https http.ResponseWriter
)
func main() {
--------------------
g.Go(func() error { return NewGRPCServer(config,logger,https) })
-------------------
}
func NewGRPCServer(config *envcfg.Envcfg,logger *logrus.Logger,https http.ResponseWriter) error {
// create service handlers each grpc service server
signupSvc,err := signup.New(config,https)
if err != nil {
return err
}
-----------------------------
// register grpc service server
grpcServer := grpc.NewServer()
supb.RegisterSignServer(grpcServer,signupSvc)
-------------------------------------------------------
}
api.go:
type Server struct {
config ConfigStore
logger Logger
https http.ResponseWriter
}
func New(config ConfigStore,logger Logger,https http.ResponseWriter) (*Server,error) {
return &Server{
config: config,logger: logger,https: https,},nil
}
function.go:
func (s *Server) SplashScreen(ctx context.Context,req *supb.RetrieveRequest,w http.ResponseWriter) (*supb.RetrieveResponse,error){
// do something
}
问题主要是它说signupSVC没有实现如下所示的signServer:
Cannot use 'signupSvc' (type *Server) as type SignServer Type does not implement 'SignServer' need method: SplashScreen(context.Context,*RetrieveRequest) (*RetrieveResponse,error) have method: SplashScreen(ctx context.Context,error)
放置http.Responsewriter的位置?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。