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

La meilleure façon de faire des requêtes POST en utilisant le langage Go

WBOY
Libérer: 2024-04-07 18:06:02
original
531 Les gens l'ont consulté

La meilleure solution pour effectuer des requêtes POST dans Go : utilisez le package net/http de la bibliothèque standard : fournit un contrôle et une personnalisation de niveau inférieur qui nécessitent une gestion manuelle de chaque aspect de la requête et de la réponse. Utilisez une bibliothèque tierce (comme github.com/go-resty/resty) : fournit une abstraction de niveau supérieur, simplifie la gestion des requêtes et prend en charge des fonctionnalités pratiques telles que l'encodage/décodage JSON et la gestion des erreurs.

使用 Go 语言进行 POST 请求的最佳方案

La meilleure solution pour faire des requêtes POST en langage Go

En langage Go, il existe deux manières principales de faire des requêtes POST : en utilisant le package net/http de la bibliothèque standard ou en utilisant des bibliothèques tierces (telles que github.com/go-resty/resty). net/http 包或使用第三方库(如 github.com/go-resty/resty)。

使用 net/http 包进行 POST 请求

import (
    "bytes"
    "fmt"
    "io/ioutil"
    "net/http"
)

func main() {
    url := "https://example.com/api/v1/create"
    payload := []byte(`{"name": "John Doe", "email": "johndoe@example.com"}`)

    req, err := http.NewRequest("POST", url, bytes.NewBuffer(payload))
    if err != nil {
        // 处理错误
    }
    req.Header.Set("Content-Type", "application/json")

    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        // 处理错误
    }
    defer resp.Body.Close()

    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        // 处理错误
    }

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

使用 resty 库进行 POST 请求

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

func main() {
    url := "https://example.com/api/v1/create"
    payload := map[string]string{
        "name": "John Doe",
        "email": "johndoe@example.com",
    }

    client := resty.New()
    resp, err := client.R().SetBody(payload).Post(url)
    if err != nil {
        // 处理错误
    }

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

实战案例

在以下实战案例中,我们将使用 resty

🎜Utilisez le package net/http pour la requête POST🎜🎜
import (
    "github.com/go-resty/resty/v2"
    "fmt"
)

func main() {
    auth := "Bearer YOUR_GITHUB_API_TOKEN"

    client := resty.New()
    resp, err := client.R().
        SetHeader("Authorization", auth).
        SetBody(map[string]string{
            "name": "My Awesome Repository",
            "description": "This is my awesome repository.",
        }).
        Post("https://api.github.com/user/repos")
    if err != nil {
        // 处理错误
    }

    fmt.Println(string(resp.Body()))
}
Copier après la connexion
🎜🎜Utilisez la bibliothèque resty pour la requête POST🎜🎜rrreee🎜🎜Cas pratique🎜🎜🎜Dans la pratique suivante cas, nous utiliserons la bibliothèque resty pour créer un dépôt GitHub : 🎜rrreee

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!

Étiquettes associées:
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!