问题描述
我在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 (将#修改为@)