Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Artikel yang memperkenalkan pakej permintaan http Golang

Artikel yang memperkenalkan pakej permintaan http Golang

PHPz
PHPzasal
2023-04-24 14:46:49856semak imbas

Golang ialah bahasa pengaturcaraan yang berkembang pesat yang turut menarik perhatian ramai dalam pengaturcaraan rangkaian. Di Golang, pengaturcaraan rangkaian boleh dilakukan dengan mudah dengan menggunakan pakej permintaan http. Artikel ini akan memperkenalkan pakej permintaan http Golang, termasuk pengetahuan menghantar permintaan http, menerima respons http, dsb.

  1. Hantar permintaan http

Di Golang, gunakan fungsi http.NewRequest() untuk mencipta permintaan http. Parameter fungsi ini termasuk kaedah permintaan, URL, badan permintaan, dsb.

func NewRequest(method, url string, body io.Reader) (*Request, error)

Kod contoh:

package main

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

func main() {
    url := "http://example.com"
    jsonStr := []byte(`{"name":"John"}`)

    req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonStr))
    req.Header.Set("Content-Type", "application/json")

    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    body, _ := ioutil.ReadAll(resp.Body)
    fmt.Println("response Body:", string(body))
}

Dalam kod di atas, kami menggunakan fungsi http.NewRequest() untuk membuat permintaan POST dan menetapkan Jenis Kandungan pengepala permintaan . Gunakan http.Client{} untuk menghantar permintaan dan membaca badan tindak balas melalui fungsi ReadAll() bagi pakej ioutil.

  1. Terima respons http

Di Golang, struktur http.Response digunakan untuk mewakili respons http. Struktur termasuk kod status respons, pengepala respons, badan respons dan maklumat lain.

type Response struct {
    Status     string
    StatusCode int
    Proto      string
    ProtoMajor int
    ProtoMinor int
    Header     Header
    Body       io.ReadCloser
    ContentLength int64
    TransferEncoding []string
    Close bool
    Uncompressed bool
    Trailer Header
    Request *Request
    TLS *tls.ConnectionState
    Cancel <-chan struct{}
}

Kod contoh:

package main

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

func main() {
    resp, err := http.Get("http://example.com")
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    fmt.Println("response Status:", resp.Status)
    fmt.Println("response Headers:", resp.Header)
    body, _ := ioutil.ReadAll(resp.Body)
    fmt.Println("response Body:", string(body))
}

Dalam kod di atas, kami menggunakan fungsi http.Get() untuk menghantar permintaan GET melalui resp.Status, resp.Header, resp .Body Dapatkan kod status respons, pengepala respons dan badan respons masing-masing, dan keluarkannya dalam bentuk rentetan.

Ringkasan

Pakej permintaan http Golang menyediakan antara muka pengaturcaraan rangkaian yang sangat mudah, menjadikan pengaturcaraan rangkaian mudah dan cekap. Kita boleh membuat permintaan http melalui fungsi seperti http.NewRequest() dan http.Get(), dan mendapatkan maklumat respons http melalui struktur http.Response. Menguasai pakej permintaan http Golang boleh meningkatkan kebolehgunaan semula kod dan kebolehbacaan apabila melaksanakan pelayan web dan perkhidmatan web.

Atas ialah kandungan terperinci Artikel yang memperkenalkan pakej permintaan http Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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