douguyi3903
2016-08-25 09:17
浏览 487
已采纳

如何将值从一个handlerFunc传递给另一个go-gin

I have rest API defined as

    apis.GET(/home, validatationHandler , dashboardHandler)

I want pass some data from validatationHandler to dashboardHandler. For this I thought of using header. To set the data I use this in validatationHandler

    c.Writer.Header().Set("myheader", "mytoken")
    c.Next()

and in dashboardHandler I tried to access it using

fmt.Println(c.Request.Header.Get("myheader"))

But the value is always nil. Any idea how can I set and retrieve headers? Is there any other way I can pass on the data from 1 handler to another?

图片转代码服务由CSDN问答提供 功能建议

我将其余API定义为

  apis.GET(  / home,validatationHandler,dashboardHandler)
   
 
 

我想将一些数据从validatationHandler传递给dashboardHandler。 为此,我想到了使用标头。 要设置数据,我在validateatationHandler中使用它

  c.Writer.Header()。Set(“ myheader”,“ mytoken”)
 c.Next()
    
 
 

,并且在dashboardHandler中,我尝试使用

  fmt.Println(c.Request.Header.Get(  “ myheader”))
   
 
 

,但该值始终为nil。 知道如何设置和检索标题吗? 还有什么其他方法可以将数据从1处理程序传递给另一个处理程序?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • drny60365 2016-08-25 09:24
    已采纳

    You can pass values via gin.Context Use ctx.Set(k, v) in fisrt one and ctx.Get(k) in the next.

    So How to Use It:

    ctx.Set("myKey", 100)
    

    and get it using

    v, ok := ctx.Get("myKey")
    if ok {
       actualValue := v.(int) // you need to type convert it as it returns interface.
    }
    

    See context.go

    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题