Maison > développement back-end > Golang > le corps du texte

golang net demande externe

王林
Libérer: 2023-05-10 20:08:35
original
484 Les gens l'ont consulté

Golang est un langage de programmation puissant et fiable qui est privilégié par de plus en plus de développeurs. Parmi eux, le traitement des requêtes réseau est l'un des points forts de Golang. Cet article expliquera comment Golang demande des ressources réseau externes.

  1. Package HTTP dans Golang

La bibliothèque standard Golang est livrée avec un package HTTP, qui fournit un client et un serveur, rendant la communication entre eux très facile. Le client HTTP fournit une interface facile à utiliser qui permet aux utilisateurs d'effectuer des requêtes HTTP et d'obtenir des réponses.

Le code suivant montre comment utiliser des paquets HTTP pour obtenir le contenu d'une page Web :

package main

import (
    "fmt"
    "net/http"
)

func main() {
    resp, err := http.Get("http://www.baidu.com")
    if err != nil {
        fmt.Println("Error:", err)
    }

    defer resp.Body.Close()

    fmt.Println(resp.Status)
}
Copier après la connexion

Dans le code ci-dessus, nous appelons la méthode http.Get() pour obtenir le contenu de la page d'accueil de Baidu, puis attribuons le résultat renvoyé réponse et erreur à deux variables resp et err. Si une erreur d'accès se produit, le message d'erreur est généré ; s'il n'y a pas d'erreur, le corps de la réponse est fermé et le code d'état de la réponse est généré.

  1. Package TCP dans Golang

Si vous devez effectuer certaines tâches dont HTTP n'est pas capable, le package TCP dans Golang peut entrer en jeu. Ce package fournit un client et un serveur réseau entièrement personnalisables, permettant aux utilisateurs de communiquer comme ils le souhaitent.

Ce qui suit est un exemple d'envoi de données à l'aide de paquets TCP :

package main

import (
  "fmt"
  "net"
)

func main() {
  conn, err := net.Dial("tcp", "golang.org:80")
  if err != nil {
    fmt.Println("Error:", err)
  }

  fmt.Fprintf(conn, "GET / HTTP/1.0

")
  status, err := bufio.NewReader(conn).ReadString('
')

  fmt.Println(status)
}
Copier après la connexion

Dans le code ci-dessus, nous utilisons la méthode net.Dial() pour créer une connexion TCP, en spécifiant que le protocole d'accès est HTTP et l'adresse d'accès est golang .org : 80 . Ensuite, nous utilisons la méthode fmt.Fprintf() pour envoyer la requête HTTP à la connexion établie. Enfin, nous lisons les données de la connexion de réponse et envoyons le code de réponse au terminal.

  1. Packages tiers dans Golang

En plus des packages HTTP et TCP de la bibliothèque standard Golang, il existe de nombreux packages tiers parmi lesquels choisir, dont certains fournissent des API plus flexibles et ont des fonctionnalités plus avancées.

Voici plusieurs packages tiers qui méritent d'être mentionnés :

3.1 Le client API RESTful de Golang -----resty

resty est un client API RESTful léger dans Golang, qui prend en charge HTTP et HTTPS et une authentification de base. L'utilisation de Resty facilite grandement la demande de données sur le réseau HTTP. Voici un exemple d'utilisation de resty pour effectuer des requêtes HTTP :

package main

import (
    "fmt"
    "github.com/go-resty/resty/v2"
)

func main() {
    client := resty.New()
    resp, err := client.R().
        EnableTrace().
        Get("http://www.baidu.com")
    if err != nil {
        fmt.Println("Error:", err)
    }

    fmt.Println(resp.Body())
}
Copier après la connexion

Dans le code ci-dessus, nous utilisons la méthode resty.New() pour créer un client resty, puis utilisons la méthode client.R() pour envoyer la requête . Utilisez la méthode EnableTrace() pour activer le suivi de débogage afin de faciliter le débogage ultérieur. Enfin, nous générons le corps de la réponse.

3.2 Le framework HTTP de Golang -----Gin

Gin est un framework HTTP rapide et flexible dans Golang. Ses performances sont plus rapides que les autres frameworks. Il dispose d'un mécanisme de plug-in middleware et prend en charge le routage, la sortie de la console et l'analyse des paramètres. , traitement des formulaires et autres fonctions. Voici un exemple d'utilisation du framework Gin pour gérer les requêtes HTTP :

package main

import (
    "github.com/gin-gonic/gin"
)

func main() {
    r := gin.Default()

    r.GET("/", func(c *gin.Context) {
        c.String(200, "Hello, World!")
    })

    r.GET("/ping", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "pong",
        })
    })

    r.Run(":8080")
}
Copier après la connexion

Dans le code ci-dessus, nous utilisons la méthode gin.Default() pour créer un moteur de routage prédéfini, puis utilisons la méthode r.GET() pour gérer Requêtes HTTP GET. Pour la route racine "/", nous utilisons la méthode c.String() pour renvoyer "Hello, World!", pour la route "/ping", nous utilisons la méthode c.JSON() pour renvoyer le format JSON, et enfin, nous utilisons la méthode r.Run() pour démarrer Gin.

  1. Résumé

Cet article présente comment Golang demande des ressources réseau externes, notamment des packages HTTP et TCP et plusieurs packages tiers. Les développeurs peuvent choisir une méthode qui leur convient en fonction de leurs besoins pour effectuer des requêtes réseau, complétant ainsi efficacement le développement des applications Golang.

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