Rumah > pembangunan bahagian belakang > Golang > Cara terbaik untuk membuat permintaan POST menggunakan bahasa Go

Cara terbaik untuk membuat permintaan POST menggunakan bahasa Go

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2024-04-07 18:06:02
asal
650 orang telah melayarinya

Penyelesaian terbaik untuk membuat permintaan POST dalam Go: Gunakan pakej net/http daripada perpustakaan standard: Menyediakan kawalan dan penyesuaian peringkat rendah yang memerlukan pengendalian manual bagi setiap aspek permintaan dan respons. Gunakan pustaka pihak ketiga (seperti github.com/go-resty/resty): Menyediakan abstraksi peringkat lebih tinggi, memudahkan pengendalian permintaan dan menyokong ciri kemudahan seperti pengekodan/penyahkodan JSON dan pengendalian ralat.

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

Penyelesaian terbaik untuk membuat permintaan POST menggunakan bahasa Go

Dalam bahasa Go, terdapat dua cara utama untuk membuat permintaan POST: menggunakan pakej net/http perpustakaan standard atau menggunakan perpustakaan pihak ketiga (seperti 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))
}
Salin selepas log masuk

使用 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()))
}
Salin selepas log masuk

实战案例

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

🎜Gunakan pakej net/http untuk permintaan 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()))
}
Salin selepas log masuk
🎜🎜Gunakan perpustakaan resty untuk permintaan POST🎜🎜rrreee🎜🎜Dalam kes praktikal🎜🎜🎜 case , kami akan menggunakan perpustakaan resty untuk mencipta repositori GitHub: 🎜rrreee

Atas ialah kandungan terperinci Cara terbaik untuk membuat permintaan POST menggunakan bahasa Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan