我正在使用 Golang net/context 包将包装在上下文对象中的 ID 从一个服务传递到另一个服务。我能够成功传递上下文对象,但要实际检索特定键的值,context.Value(key) 总是返回 nil。我不知道为什么,但这是我到目前为止所做的:
if ctx != nil {
fmt.Println(ctx)
fmt.Println("Found UUID, forwarding it")
id, ok := ctx.Value(0).(string) // This always returns a nil and thus ok is set to false
if ok {
fmt.Println("id found %s", id)
req.headers.Set("ID", id)
}
}
ctx 是 context.Context 类型,在打印时我得到:
context.Background.WithValue(0, "12345")
我有兴趣从上下文中获取值“12345”。从 Golang 网络/上下文文档(https://blog.golang.org/context)中, Value() 接受 interface{} 类型的键并返回 interface{} ,因此我的类型转换为 .(string) . 有人可以帮忙吗?
慕田峪9158850
相关分类