Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie eine https-Anfrage mit Golang

So implementieren Sie eine https-Anfrage mit Golang

PHPz
PHPzOriginal
2023-04-18 09:07:341362Durchsuche

Einer der Vorteile von Golang sind seine leistungsstarken Netzwerkfähigkeiten. In der Netzwerkkommunikation unterstützen immer mehr Server das HTTPS-Protokoll, und dementsprechend müssen Clients auch HTTPS-Anfragen unterstützen. In diesem Artikel wird erläutert, wie Sie mit Golang https-Anfragen implementieren.

  1. Paket importieren

Zuerst müssen wir das entsprechende Paket importieren:

import (
    "crypto/tls"
    "net/http"
    "time"
)

Unter anderem stellt das Paket crypto/tls die Implementierung von TLS- und SSL-Protokollen bereit; Es wird das Zeitpaket verwendet. Timeout festlegen.

  1. HTTP-Client erstellen

Bevor wir eine http-Anfrage stellen, müssen wir einen http-Client erstellen. Beim Erstellen eines http-Clients müssen Sie die RoundTripper-Schnittstelle verwenden, um die TLS-Konfiguration festzulegen. Der Beispielcode lautet wie folgt:

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,
    }
}

Es ist zu beachten, dass wir im obigen Code InsecureSkipVerify auf true setzen, also das Zertifikat überspringen Überprüfung. Wenn Sie das Zertifikat während der Entwicklung überprüfen müssen, legen Sie diesen Wert auf „false“ fest.

  1. HTTP-Anfrage senden

Nachdem wir den http-Client erstellt haben, können wir den Client verwenden, um https-Anfragen zu initiieren. Der Beispielcode lautet wie folgt:

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))
}

Wir verwenden die Methode http.Get, um eine https-Anfrage zu initiieren und lesen den zurückgegebenen Antworttext über die Methode ReadAll im Paket ioutil.

  1. Zusammenfassung

In diesem Artikel wird erläutert, wie Sie mit Golang https-Anfragen implementieren. Bei der Implementierung von https-Anfragen müssen Sie die vom Paket crypto/tls bereitgestellten TLS- und SSL-Protokollimplementierungen und die vom Paket net/http bereitgestellte http-Anfrageimplementierung verwenden. Gleichzeitig müssen Sie auf die Einstellung von Parametern wie Timeout und TLS-Konfiguration achten, um die Zuverlässigkeit und Sicherheit der Anfrage zu gewährleisten.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie eine https-Anfrage mit Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn