亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何強制客戶端使用 http/2?(而不是退回到 http 1.1)

如何強制客戶端使用 http/2?(而不是退回到 http 1.1)

Go
慕后森 2023-05-08 17:50:26
如何強制一個簡單的 Go 客戶端使用 HTTP/2 并防止它退回到 HTTP 1.1?我有一個在“本地主機”上運行的簡單 HTTP/2 服務器,它在回復中返回請求的詳細信息。這是使用 Google Chrome 瀏覽器對此 URL 的輸出:https://localhost:40443/bananasI like bananas!Method       = GETURL          = /bananasProto        = HTTP/2.0Host         = localhost:40443RequestURI   = /bananas但這是我為我的 Go 客戶端代碼得到的。你可以看到它回落到 HTTP 1.1I like monkeys!Method       = GETURL          = /monkeysProto        = HTTP/1.1Host         = localhost:40443RequestURI   = /monkeys下面是我使用 HTTP/2 連接同一服務器的最佳嘗試的源代碼,但它總是回退到 HTTP 1.1// simple http/2 clientpackage mainimport (    "crypto/tls"    "crypto/x509"    "fmt"    "io/ioutil"    "log"    "net/http")const (    certFile = "client-cert.pem"    keyFile  = "client-key.pem"    caFile   = "server-cert.pem")func main() {    // Load client certificate    cert, err := tls.LoadX509KeyPair(certFile, keyFile)    if err != nil {        log.Fatal(err)    }    // Load CA cert    caCert, err := ioutil.ReadFile(caFile)    if err != nil {        log.Fatal(err)    }    caCertPool := x509.NewCertPool()    caCertPool.AppendCertsFromPEM(caCert)    // Setup HTTPS client    tlsConfig := &tls.Config{        Certificates: []tls.Certificate{cert},        RootCAs:      caCertPool,    }    tlsConfig.BuildNameToCertificate()    transport := &http.Transport{TLSClientConfig: tlsConfig}    client := &http.Client{Transport: transport}    response, err := client.Get("https://localhost:40443/monkeys")    if err != nil {        log.Fatal(err)    }    defer response.Body.Close()    // dump response    text, err := ioutil.ReadAll(response.Body)    if err != nil {        log.Fatal(err)    }    fmt.Printf("Body:\n%s", text)}任何建議,包括指向其他工作示例的指針,這些示例說明如何在 Go 中發出 HTTP/2 客戶端請求,我們將不勝感激。
查看完整描述

1 回答

?
慕姐4208626

TA貢獻1852條經驗 獲得超7個贊

首先導入"golang.org/x/net/http2"包。然后改變

transport := &http.Transport{TLSClientConfig: tlsConfig}

transport := &http2.Transport{TLSClientConfig: tlsConfig}


查看完整回答
反對 回復 2023-05-08
  • 1 回答
  • 0 關注
  • 261 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號