Maison > développement back-end > Golang > Comment implémenter une requête https en utilisant Golang

Comment implémenter une requête https en utilisant Golang

PHPz
Libérer: 2023-04-18 09:23:06
original
1398 Les gens l'ont consulté

L'un des avantages de Golang réside dans ses puissantes capacités réseau. Dans les communications réseau, de plus en plus de serveurs prennent en charge le protocole https et, par conséquent, les clients doivent également prendre en charge les requêtes https. Cet article explique comment utiliser Golang pour implémenter les requêtes https.

  1. Import package

Tout d'abord, nous devons importer le package correspondant :

import (
    "crypto/tls"
    "net/http"
    "time"
)
Copier après la connexion

Parmi eux, le package crypto/tls fournit l'implémentation des protocoles TLS et SSL ; le package net/http fournit l'implémentation des requêtes http ; le package de temps est utilisé Définir le délai d'attente.

  1. Créer un client http

Avant de faire une requête http, nous devons créer un client http. Lors de la création d'un client http, vous devez utiliser l'interface RoundTripper pour définir la configuration TLS. L'exemple de code est le suivant :

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,
    }
}
Copier après la connexion

Il convient de noter que dans le code ci-dessus, nous définissons InsecureSkipVerify sur true, c'est-à-dire ignorer le certificat. vérification. Si vous devez vérifier le certificat pendant le développement, définissez cette valeur sur false.

  1. Envoyer une requête http

Après avoir créé le client http, nous pouvons utiliser le client pour lancer des requêtes https. L'exemple de code est le suivant :

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))
}
Copier après la connexion

Nous utilisons la méthode http.Get pour lancer une requête https et lisons le corps de la réponse renvoyé via la méthode ReadAll dans le package ioutil.

  1. Résumé

Cet article explique comment utiliser Golang pour implémenter les requêtes https. Lors de l'implémentation des requêtes https, vous devez utiliser les implémentations des protocoles TLS et SSL fournies par le package crypto/tls et l'implémentation des requêtes http fournies par le package net/http. Dans le même temps, vous devez faire attention à la définition de paramètres tels que le délai d'attente et la configuration TLS pour garantir la fiabilité et la sécurité de la demande.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal