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

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

PHPz
PHPzoriginal
2023-04-18 09:07:341363parcourir

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

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

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

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!

Déclaration:
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