https://godoc.org/golang.org/x/oauth2#Config.Exchange上的 oauth2.Exchange 文档说:
要使用的 HTTP 客户端源自上下文。如果未通过上下文提供客户端,则使用 http.DefaultClient。
现在我已经用我自己的设置创建了一个 http.Client 。如何让 oauth2.Exchange 函数使用它?
小智 8
该oauth2包定义了以下变量:
Run Code Online (Sandbox Code Playgroud)var HTTPClient internal.ContextKeyHTTPClient 是与 golang.org/x/net/context 的 WithValue 函数一起使用的上下文键,用于将 *http.Client 值与上下文关联起来。
在构造要传递给的上下文时,使用上述变量作为上下文键Exchange:
client := &http.Client{
// TODO
}
parent := oauth2.NoContext()
ctx := context.WithValue(parent, oauth2.HTTPClient, client)
tkn, err := c.Exchange(ctx, code)
Run Code Online (Sandbox Code Playgroud)