【发布时间】:2019-06-21 10:38:57
【问题描述】:
我有一个使用 HTTP/2 工作的基本客户端和服务器实现。我想测试服务器是否也可以使用 HTTP/1。
有没有办法将协议从 HTTP/2 更改为 HTTP/1.x?
客户端代码:
func main() {
host = "https://127.0.0.1:8080"
client = http.Client{
// InsecureTLSDial is temporary and will likely be
// replaced by a different API later.
Transport: &http2.Transport{
TLSClientConfig: &tls.Config{
InsecureSkipVerify: true,
},
},
}
// further functionality
}
服务器代码:
func main() {
var srv http.Server
srv.Addr = ":8080"
// Set Routes
routes()
// Start server
srv.ListenAndServeTLS("certs/localhost.cert", "certs/localhost.key")
}
【问题讨论】:
-
您是否尝试过软件包文档开头列出的 2 种方法? golang.org/pkg/net/http
-
@JimB 是的,TLSNextProto 选项对我不起作用。我能够使用 GODEBUG 使服务器在 HTTP/1.x 中工作,但客户端还没有工作
-
您的客户端明确指定了 HTTP/2 传输,即使这不是您想要的。