Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mendapatkan permintaan menggunakan golang (contoh kod)

Bagaimana untuk mendapatkan permintaan menggunakan golang (contoh kod)

PHPz
PHPzasal
2023-04-14 09:43:531152semak imbas

golang ialah bahasa pengaturcaraan yang popular dalam bidang pembangunan web. Apabila menggunakan golang, selalunya diperlukan untuk mendapatkan permintaan pada pelayan dan melaksanakan operasi yang sepadan pada permintaan. Artikel ini akan memperkenalkan cara menggunakan golang untuk mendapatkan permintaan, dan memberikan beberapa contoh kod praktikal.

Mendapatkan permintaan dalam golang biasanya memerlukan penggunaan pakej http. Permintaan HTTP boleh dikendalikan dan dikendalikan dengan mudah pada pelayan menggunakan pakej http. Pakej http menyediakan banyak fungsi untuk mengendalikan permintaan HTTP, termasuk menghuraikan pengepala permintaan HTTP, menghuraikan badan permintaan HTTP, dsb. Apabila menulis pelayan HTTP dalam pakej http, kami biasanya menggunakan fungsi http.ListenAndServe untuk mendengar permintaan HTTP.

Berikut ialah contoh mudah yang menunjukkan cara menggunakan pakej http dalam golang untuk menghuraikan permintaan HTTP:

package main

import (
    "fmt"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello World!")
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}

Kod di atas menunjukkan pelayan HTTP yang sangat mudah. Pelayan mendengar pada port 8080. Apabila permintaan dihantar ke pelayan, pelayan akan mengembalikan respons Hello World!. Dalam contoh ini, kami mendaftarkan fungsi pemprosesan permintaan melalui http.HandleFunc, supaya apabila permintaan sampai ke pelayan, pelayan akan menghantar permintaan kepada fungsi pemprosesan yang sepadan.

Gunakan fungsi http.NewRequest untuk membuat permintaan HTTP. Parameter pertama fungsi ini ialah kaedah permintaan, seperti GET, POST, dsb., dan parameter kedua ialah URL permintaan. Untuk URL yang diminta, anda boleh menggunakan fungsi url.Parse untuk menghuraikan rentetan ke dalam objek URL.

Melalui kaedah ini, anda boleh membina permintaan HTTP, contohnya:

package main

import (
    "net/http"
    "net/url"
)

func main () {
    u, _ := url.Parse("http://localhost:8080")
    req := http.NewRequest("GET", u.String(), nil)
    client := &http.Client{}
    client.Do(req)
}

Kod di atas menunjukkan cara menggunakan fungsi http.NewRequest untuk membuat permintaan HTTP. Permintaan ini menggunakan kaedah GET dan dihantar pada port 8080 localhost. Melalui fungsi client.Do(req), permintaan ini akan dihantar ke pelayan, dan pelayan akan mengembalikan respons HTTP.

Jika anda ingin menghantar data dalam permintaan, anda boleh menggunakan http.Request pembolehubah ahli struktur Body. Pembolehubah ahli ini ialah jenis antara muka io.Reader, yang membolehkan anda membaca isi permintaan dengan mudah, contohnya:

package main

import (
    "bytes"
    "net/http"
)

func main () {
    data := []byte("hello")
    req, _ := http.NewRequest("POST", "http://localhost:8080", bytes.NewBuffer(data))
    client := &http.Client{}
    client.Do(req)
}

Kod di atas menunjukkan cara menambah data pada permintaan. Kami menggunakan fungsi bytes.NewBuffer untuk membalut rentetan hello ke dalam objek io.Reader jenis antara muka, dan kemudian memperuntukkannya kepada pembolehubah ahli Body yang diminta. Data ini dikodkan ke dalam badan permintaan HTTP sebelum permintaan dihantar ke pelayan.

Ringkasan: Artikel ini memperkenalkan cara mendapatkan permintaan HTTP dalam golang dan menunjukkan beberapa contoh kod yang sepadan. Jika anda baru mula menggunakan golang dan perlu mengendalikan permintaan HTTP pada pelayan, artikel ini akan membantu anda bermula.

Atas ialah kandungan terperinci Bagaimana untuk mendapatkan permintaan menggunakan golang (contoh kod). 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