ホームページ  >  記事  >  バックエンド開発  >  HTTP/2 トランスポートに Go と http.Transport を使用するにはどうすればよいですか?

HTTP/2 トランスポートに Go と http.Transport を使用するにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-07-22 09:22:481734ブラウズ

Go と http.Transport を HTTP/2 トランスポートに使用するにはどうすればよいですか?

HTTP/2 は、より高速な転送速度とより効率的な帯域幅利用を提供する新しい HTTP プロトコル バージョンです。 Go 言語には HTTP/2 のサポートが付属しており、HTTP/2 送信は http.Transport パッケージを通じて簡単に実行できます。この記事では、HTTP/2 トランスポートに Go と http.Transport を使用する方法を説明し、いくつかのコード例を示します。

  1. 必要なパッケージをインポートします

まず、net/httpgolang.org/x/net/http2 をインポートする必要があります。 これら 2 つのパッケージ。 net/http パッケージは HTTP クライアントとサーバーの機能を提供し、golang.org/x/net/http2 パッケージは HTTP/2 のサポートを提供します。

import (
    "net/http"
    "golang.org/x/net/http2"
)
  1. HTTP クライアントの作成

次に、HTTP クライアントを作成する必要があります。これは、いくつかの http.Transport オプションを設定できる http.Client 構造を使用して実現できます。

client := &http.Client{
    Transport: &http2.Transport{},
}

ここでは http2.Transport を Transport のインスタンスとして使用し、HTTP/2 送信を有効にします。

  1. HTTP リクエストの送信

作成した HTTP クライアントを使用して、HTTP リクエストを送信できます。ここでは例として GET リクエストを取り上げ、返されたレスポンスをコンソールに出力します。

resp, err := client.Get("https://example.com")
if err != nil {
    panic(err)
}
defer resp.Body.Close()

body, err := ioutil.ReadAll(resp.Body)
if err != nil {
    panic(err)
}

fmt.Println(string(body))

この例では、client.Get メソッドを使用して GET リクエストを送信し、応答を resp 変数に保存しました。次に、ioutil.ReadAll メソッドを使用して応答本文をバイト スライスとして読み取り、文字列に変換してコンソールに出力します。

  1. ヘッダーとその他のオプションの追加

リクエストを送信する前に、追加のヘッダーを追加したり、他のオプションを設定したりできます。たとえば、次の方法でカスタム ヘッダーを添付できます:

req, err := http.NewRequest("GET", "https://example.com", nil)
if err != nil {
    panic(err)
}
req.Header.Add("X-Custom-Header", "CustomValue")

resp, err := client.Do(req)
if err != nil {
    panic(err)
}
defer resp.Body.Close()

// 处理响应...

この例では、まず http.NewRequest メソッドを使用して GET リクエストを作成し、カスタム ヘッダーを添付します。ヘッダ。次に、client.Do メソッドを使用してリクエストを送信し、以前と同じ方法で応答を処理します。

  1. 証明書検証のスキップ

テスト環境または開発環境では、サーバー証明書の検証をスキップする必要がある場合があります。これは、http2.TransportTLSClientConfig フィールドを通じて実現できます。例:

tr := &http2.Transport{
    TLSClientConfig: &tls.Config{
        InsecureSkipVerify: true,
    },
}

client := &http.Client{
    Transport: tr,
}

この例では、http2.Transport インスタンスを作成し、TLSClientConfigInsecureSkipVerify フィールドを # # に設定します。 #true、つまり、サーバー証明書の検証をスキップします。次に、この Transport インスタンスを HTTP クライアントに渡します。

概要:

上記の手順により、Go と http.Transport を使用して HTTP/2 送信を行うことができます。まず必要なパッケージをインポートし、次に HTTP クライアントを作成し、HTTP リクエストを送信し、返された応答を処理します。追加のヘッダーをアタッチしたり、他のオプションを設定したりすることもできます。

この記事が、Go と HTTP/2 送信のための http.Transport の理解と使用に役立つことを願っています。ご質問がございましたら、お気軽にお問い合わせください。

以上がHTTP/2 トランスポートに Go と http.Transport を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。