请问 高手们 go net/http 包 官方称 支持 http2 但是我 直接调用 打印http版本总是 1.1啊
package main
import (
"fmt"
"io"
"net/http"
"os"
"crypto/tls"
"golang.org/x/net/http2"
)
func main() {
tr := &http2.Transport{
// &http2.Transport,
// AllowHTTP: true,
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
}
fmt.Println(*tr)
client := http.Client{Transport: tr}
fmt.Println(client)
url := "https://127.0.0.1:9000"
reqest, err := http.NewRequest("GET", url, nil)
if err != nil {
panic(err)
}
response, _ := client.Do(reqest)
stdout := os.Stdout
_, err = io.Copy(stdout, response.Body)
status := response.StatusCode
ver :=response.Proto
fmt.Println(status)
fmt.Println(ver)
}
[root@LFA-L0085650 ~]# go run test.go
RequestURI: /
Protocol: HTTP/2.0
Home200
HTTP/2.0
这个是 使用x/net/http2
package main
import (
"fmt"
"io"
"net/http"
"os"
"crypto/tls"
// "golang.org/x/net/http2"
)
func main() {
tr := &http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
}
fmt.Println(*tr)
client := http.Client{Transport: tr}
fmt.Println(client)
url := "https://127.0.0.1:9000"
reqest, err := http.NewRequest("GET", url, nil)
if err != nil {
panic(err)
}
response, _ := client.Do(reqest)
stdout := os.Stdout
_, err = io.Copy(stdout, response.Body)
status := response.StatusCode
ver :=response.Proto
fmt.Println(status)
fmt.Println(ver)
}
[root@LFA-L0085650 ~]# go run test.go
RequestURI: /
Protocol: HTTP/1.1
Home200
HTTP/1.1
直接调用 net/http 就不走http2
请高手们帮忙,怎么用net/http 实现http2连接