github.com/go-resty/resty/v2 如何指定按照 http1.2 发送?
时间: 2024-09-27 12:06:26 浏览: 4
GitHub上的`go-resty/resty/v2`是一个优雅、轻量级的Go语言HTTP客户端库,它基于`golang.org/x/net/http/httpproxy`实现了对RESTful API的简单操作。如果你想要让resty按照HTTP/1.2协议发送请求,通常在创建`Resty`实例时,你需要设置`Transport`选项。
resty默认使用的是HTTP/1.1,但你可以通过配置自定义的`http.RoundTripper`来实现HTTP/1.2。例如,可以使用`httptrace.HTTPClient`配合一个支持HTTP/1.2的`transport`,如`golang.org/x/net/http2.Transport`。下面是一个示例:
```go
import (
"github.com/go-resty/resty/v2"
"golang.org/x/net/http2"
)
// 创建一个支持HTTP/1.2的RoundTripper
transport := &http2.Transport{}
// 如果需要启用TLS,可以添加适当的配置,例如tls.Config
// transport.TLSClientConfig = &tls.Config{}
// 使用这个RoundTripper创建Resty实例,并指定它作为底层HTTP客户端
client := resty.New().
SetTransport(&resty.Client{
RoundTripper: transport,
})
```
然而,需要注意的是,不是所有的服务器都支持HTTP/1.2,所以在实际应用中,你需要检查目标服务是否兼容。另外,使用HTTP/2可能会带来额外的复杂性和开销,因此只在必要时启用。