Bagaimana untuk menghantar permintaan HTTP JSON menggunakan Golang?

WBOY
Lepaskan: 2024-06-04 16:19:00
asal
1001 orang telah melayarinya

Cara menggunakan Pergi untuk menghantar langkah permintaan HTTP JSON: Cipta objek http.Client. Cipta objek http.Request, dengan menyatakan URL dan kaedah. Tetapkan pengepala permintaan dan tetapkan Jenis Kandungan kepada aplikasi/json. Mengekodkan data JSON ke dalam tatasusunan bait. Menetapkan tatasusunan bait ke dalam badan permintaan. Hantar permintaan dan proses respons.

如何使用 Golang 发送 HTTP JSON 请求?

Cara menghantar permintaan HTTP JSON menggunakan Go

Pengenalan

Bahasa Go menjadikan penghantaran permintaan JSON sangat mudah dengan perpustakaan HTTPnya yang kaya. Artikel ini akan membimbing anda tentang cara menggunakan pakej net/http untuk menghantar permintaan HTTP JSON dan menyediakan kes praktikal. net/http 包来发送 HTTP JSON 请求,并提供一个实战案例。

发送 JSON 请求

发送 JSON 请求需要以下步骤:

  1. 创建一个 http.Client 对象。
  2. 创建一个 http.Request 对象,指定要发送请求的 URL 和方法。
  3. 设置请求头,将 Content-Type 设置为 application/json
  4. Hantar permintaan JSON
  5. Menghantar permintaan JSON memerlukan langkah berikut:
    1. Buat objek http.Client.

    Buat objek http.Request dan nyatakan URL dan kaedah untuk menghantar permintaan. Tetapkan pengepala permintaan dan tetapkan Content-Type kepada application/json.

    Ekodkan data JSON ke dalam tatasusunan bait. Tetapkan tatasusunan bait ke dalam badan permintaan.

    Hantar permintaan dan kendalikan respons.

    🎜🎜🎜Contoh Kod🎜🎜
    import (
        "bytes"
        "encoding/json"
        "fmt"
        "io/ioutil"
        "net/http"
    )
    
    func main() {
        // 创建数据
        data := map[string]string{"name": "Alice", "age": "25"}
    
        // 编码 JSON 数据
        jsonBytes, err := json.Marshal(data)
        if err != nil {
            fmt.Printf("Error encoding JSON: %v", err)
            return
        }
    
        // 创建请求
        req, err := http.NewRequest("POST", "http://example.com", bytes.NewReader(jsonBytes))
        if err != nil {
            fmt.Printf("Error creating request: %v", err)
            return
        }
    
        // 设置请求头
        req.Header.Set("Content-Type", "application/json")
    
        // 发送请求
        client := &http.Client{}
        resp, err := client.Do(req)
        if err != nil {
            fmt.Printf("Error sending request: %v", err)
            return
        }
    
        // 读取响应
        defer resp.Body.Close()
        body, err := ioutil.ReadAll(resp.Body)
        if err != nil {
            fmt.Printf("Error reading response: %v", err)
            return
        }
    
        fmt.Println("Response:", string(body))
    }
    Salin selepas log masuk
    🎜🎜Contoh Praktikal🎜🎜🎜Contoh ini menghantar permintaan JSON kepada API untuk mencipta pengguna baharu: 🎜
    // 创建用户数据
    type User struct {
        Name string `json:"name"`
        Age  int    `json:"age"`
    }
    
    user := &User{Name: "Bob", Age: 30}
    
    // 编码 JSON 数据
    jsonBytes, err := json.Marshal(user)
    // ...
    
    // ... 使用上文中的其余代码发送请求 ...
    Salin selepas log masuk

    Atas ialah kandungan terperinci Bagaimana untuk menghantar permintaan HTTP JSON menggunakan Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Label berkaitan:
    sumber:php.cn
    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