golangを使用してhttpsリクエストを実装する方法

PHPz
リリース: 2023-04-18 09:23:06
オリジナル
1361 人が閲覧しました

golang の利点の 1 つは、強力なネットワーク機能です。ネットワーク通信では、https プロトコルをサポートするサーバーが増えているため、クライアントも https リクエストをサポートする必要があります。この記事では、golang を使用して https リクエストを実装する方法を紹介します。

  1. パッケージのインポート

まず、対応するパッケージをインポートする必要があります:

import (
    "crypto/tls"
    "net/http"
    "time"
)
ログイン後にコピー

その中で、crypto/tls パッケージは TLS の実装を提供します。および SSL プロトコル; net/http パッケージは http リクエストの実装を提供し、time パッケージはタイムアウトの設定に使用されます。

  1. http クライアントの作成

http リクエストを開始する前に、http クライアントを作成する必要があります。 http クライアントを作成するときは、RoundTripper インターフェイスを使用して TLS 構成を設定する必要があります。サンプル コードは次のとおりです:

func newHTTPSClient() *http.Client {
    tlsCfg := &tls.Config{
        InsecureSkipVerify: true,
    }

    transport := &http.Transport{
        TLSClientConfig: tlsCfg,
        Proxy:           http.ProxyFromEnvironment,
        DialContext: (&net.Dialer{
            Timeout:   30 * time.Second,
            KeepAlive: 30 * time.Second,
            DualStack: true,
        }).DialContext,
        MaxIdleConns:          100,
        IdleConnTimeout:       90 * time.Second,
        TLSHandshakeTimeout:   10 * time.Second,
        ExpectContinueTimeout: 1 * time.Second,
    }

    return &http.Client{
        Timeout:   time.Second * 30,
        Transport: transport,
    }
}
ログイン後にコピー

上記のコードでは、InsecureSkipVerify を true に設定していることに注意してください。つまり、証明書の検証をスキップします。開発中に証明書を検証する必要がある場合は、この値を false に設定します。

  1. http リクエストの送信

http クライアントを作成した後、クライアントを使用して https リクエストを開始できます。サンプル コードは次のとおりです。

func sendHTTPSRequest() {
    client := newHTTPSClient()

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

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

    fmt.Println(string(body))
}
ログイン後にコピー

http.Get メソッドを使用して https リクエストを開始し、ioutil パッケージの ReadAll メソッドを通じて返された応答本文を読み取ります。

  1. 概要

この記事では、golang を使用して https リクエストを実装する方法を紹介します。 https リクエストを実装するときは、crypto/tls パッケージによって提供される TLS および SSL プロトコル実装と、net/http パッケージによって提供される http リクエスト実装を使用する必要があります。同時に、リクエストの信頼性とセキュリティを確保するために、タイムアウトや TLS 構成などのパラメーターの設定に注意する必要があります。

以上がgolangを使用してhttpsリクエストを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート