无法将 http 标头添加到 gin 客户端解析器上下文

问题描述

我想为测试请求添加标头。此外,我想将我想在解析器中访问的任何标头移动到上下文中。

PR #861 提供了一种在整个客户端或每个请求中添加 HTTP 标头的方法。这对我不起作用。我尝试向客户端添加标题,如下所示:

 ElevatedButton(
              style: ButtonStyle(
                shape: MaterialStateProperty.all<RoundedRectangleBorder>(
                  RoundedRectangleBorder(
                      borderRadius: BorderRadius.circular(16),side: BorderSide(color: Colors.green)),),onpressed: () {},child: Text('test'),)

没有错误或任何东西,只是没有添加标题。我还尝试在请求中添加标头,作为 c = client.New(srv,client.AddHeader("Header","HeaderValue")) 的参数并得到相同的结果。

也许中间件可以提供帮助

c.MustPost

版本

  • gqlgen 版本 - 最新
  • go 版本 - 最新

正是这些要求:https://github.com/99designs/gqlgen/issues/1330

解决方法

我已经找到了解决方案。 我们可以使用选项为请求添加上下文...

srv := handler.NewDefaultServer(generated.NewExecutableSchema(generated.Config{Resolvers: &resolvers}))
c := client.New(srv,func(bd *client.Request){
    bd.HTTP = bd.HTTP.WithContext(context.WithValue(bd.HTTP.Context(),"key","Value"))
})

有了这个,我们可以将标头作为解析器上下文。