Rumah >pembangunan bahagian belakang >Golang >Panduan praktikal untuk permintaan POST untuk pembangun Go
Amalan terbaik untuk mencipta atau mengubah suai sumber sebelah pelayan: Hantar permintaan POST dalam Pergi untuk mengimport perpustakaan yang diperlukan. Gunakan untuk membina objek badan permintaan. Buat objek permintaan HTTP. Tetapkan tajuk permintaan mengikut keperluan. Gunakan http.Client untuk melaksanakan permintaan. Memproses tindak balas, membaca dan menutup badan tindak balas. Kes praktikal: Hantar permintaan POST untuk mencipta pengguna dan mencetak badan respons.
Panduan Amalan Permintaan POST Pembangun
Permintaan POST sering digunakan untuk mencipta atau mengubah suai sumber pada pelayan. Proses menghantar permintaan POST dalam Go adalah mudah dan pantas.
Perpustakaan yang diperlukan
Pertama, anda perlu memasang dan mengimport perpustakaan yang diperlukan:
import ( "bytes" "io/ioutil" "net/http" )
Membina badan permintaan
Isi permintaan permintaan POST mengandungi data untuk dihantar ke pelayan. Anda boleh menggunakan bait.Buffer
atau io.Reader
untuk membina badan permintaan: bytes.Buffer
或 io.Reader
来构建请求体:
// 使用 bytes.Buffer buf := bytes.Buffer{} buf.WriteString("name=John Doe&age=30") // 使用 io.Reader r := strings.NewReader("name=Jane Doe&age=35")
创建 HTTP 请求
接下来,创建一个 http.Request
对象:
req, err := http.NewRequest(http.MethodPost, "http://example.com/api/users", buf) if err != nil { // 处理错误 }
设置请求头
根据需要设置任何必要的请求头。例如,要设置 Content-Type 头:
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
执行请求
使用 http.Client
发送请求:
client := &http.Client{} resp, err := client.Do(req) if err != nil { // 处理错误 }
处理响应
请求执行后,处理响应:
body, err := ioutil.ReadAll(resp.Body) if err != nil { // 处理错误 } resp.Body.Close() // 处理响应正文
实战案例
在 Go 中发送创建用户的 POST 请求:
const url = "http://localhost:8080/api/users" type User struct { Name string Age int } func createUser() (*http.Response, error) { user := User{Name: "John Doe", Age: 30} jsonValue, _ := json.Marshal(user) req, err := http.NewRequest(http.MethodPost, url, bytes.NewBuffer(jsonValue)) if err != nil { return nil, err } req.Header.Set("Content-Type", "application/json") client := &http.Client{} return client.Do(req) }
使用 fmt.Println(createUser().Body)
rrreee
http. Permintaan Objek: 🎜rrreee🎜🎜Tetapkan pengepala permintaan🎜🎜🎜Tetapkan sebarang pengepala permintaan yang diperlukan seperti yang diperlukan. Contohnya, untuk menetapkan pengepala Jenis Kandungan: 🎜rrreee🎜🎜Lakukan permintaan🎜🎜🎜Gunakan <code>http.Client
untuk menghantar permintaan:🎜rrreee🎜🎜Proses respons🎜🎜🎜Selepas permintaan telah dilaksanakan, proses respons:🎜rrreee 🎜🎜Kes praktikal🎜🎜🎜🎜Hantar permintaan POST untuk mencipta pengguna dalam Go: 🎜🎜rrreee🎜Gunakan fmt.Println(createUsercode(>Body) untuk mencetak badan respons permintaan. 🎜
Atas ialah kandungan terperinci Panduan praktikal untuk permintaan POST untuk pembangun Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!