为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 tlsConfig 与 RoundTripper 一起使用?

如何将 tlsConfig 与 RoundTripper 一起使用?

Go
慕斯709654 2022-05-23 14:59:50
我有这段代码实现了一个带有自定义 RoundTripper 的 http 客户端,以在Client用于进行 http 调用时默认添加一些标头。var Client *http.Clienttype customTransport struct {    underlyingTransport http.RoundTripper}func (t *customTransport) RoundTrip(req *http.Request) (*http.Response, error) {    req.Header.Add("Authorization", "Bearer")    req.Header.Add("Version", "2017-11-23")     return t.underlyingTransport.RoundTrip(req)}func CreateClient() error {    // Setup HTTPS client    tlsConfig := &tls.Config{        InsecureSkipVerify: true,    }    tlsConfig.BuildNameToCertificate()    // transport := &http.Transport{TLSClientConfig: tlsConfig}    // Client = &http.Client{Transport: transport}    Client = &http.Client{Transport: &customTransport{underlyingTransport: http.DefaultTransport}}    return nil}你可以看到我有一个tlsConfig. 我的问题是如何将其合并tlsConfig到我的客户中?
查看完整描述

1 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

您可以通过在您的方法中调用原始/默认传输来处理此问题RoundTrip,您已经在执行此操作:


return t.underlyingTransport.RoundTrip(req)

所以你只需要正确配置它:


Client = &http.Client{Transport: &customTransport{underlyingTransport: http.DefaultTransport}}

你也已经在做。


您唯一需要更改的是,您应该使用 TLS 配置使用传输,而不是http.DefaultTransport:


transport := &http.Transport{

    TLSClientConfig: tlsConfig,

}

Client = &http.Client{Transport: &customTransport{underlyingTransport: transport}}


查看完整回答
反对 回复 2022-05-23
  • 1 回答
  • 0 关注
  • 114 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信