Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk mengesahkan kod status respons HTTP di Golang?
Kaedah untuk mengesahkan kod status respons HTTP di Golang ialah: gunakan http.Response.StatusCode untuk membandingkan terus kod status respons dengan nilai yang dijangkakan. Buat jenis ralat tersuai yang mengandungi kod status dan mesej ralat, dan sahkan kod status dengan menangkap ralat.
Cara mengesahkan kod status respons HTTP di Golang
Apabila menghantar permintaan HTTP menggunakan pakej net/http
di Golang, adalah sangat penting untuk mengesahkan kod status respons. Ini membantu menangani ralat sebelah pelayan, isu konfigurasi dan isu rangkaian lain. net/http
包发送 HTTP 请求时,验证响应状态代码非常重要。这有助于处理服务器端错误、配置问题和其他网络问题。
使用 http.Response.StatusCode
http.Response
类型包含一个 StatusCode
字段,表示 HTTP 响应的状态代码。要验证状态代码,可以简单地比较 StatusCode
与预期的值:
package main import ( "fmt" "net/http" "net/http/httptest" ) func main() { // 创建一个模拟响应 resp := httptest.NewRecorder() // 设置状态代码 resp.WriteHeader(http.StatusOK) if resp.Code == http.StatusOK { fmt.Println("成功") } }
使用自定义错误类型
另一种验证响应状态代码的方法是创建一个自定义错误类型,其中包含状态代码和错误消息:
package main import ( "errors" "fmt" "net/http" ) type HTTPError struct { Code int Msg string } func (e HTTPError) Error() string { return fmt.Sprintf("HTTP Error: %d - %s", e.Code, e.Msg) } func main() { // 发送请求并捕获响应 resp, err := http.Get("https://example.com") if err != nil { fmt.Println(err) return } if resp.StatusCode != http.StatusOK { // 创建自定义错误 err = HTTPError{Code: resp.StatusCode, Msg: "请求失败"} fmt.Println(err) } }
实战案例
以下是使用 http.Response.StatusCode
Gunakan http.Response.StatusCode
http.Response
mengandungi medan StatusCode
yang mewakili kod status HTTP tindak balas. Untuk mengesahkan kod status, anda hanya boleh membandingkan StatusCode
dengan nilai yang dijangkakan: 🎜func GetUserData(userID int) (UserData, error) { resp, err := http.Get(fmt.Sprintf("https://myapi.com/users/%d", userID)) if err != nil { return UserData{}, err } if resp.StatusCode != http.StatusOK { return UserData{}, fmt.Errorf("请求失败: %d", resp.StatusCode) } // 解析响应并返回数据 }🎜🎜Menggunakan jenis ralat tersuai 🎜🎜🎜Cara lain untuk mengesahkan kod status respons adalah dengan mencipta jenis ralat tersuai , yang mengandungi kod status dan mesej ralat: 🎜rrreee🎜🎜Satu kes praktikal 🎜🎜🎜Berikut ialah kes praktikal untuk menggunakan
http.Response.StatusCode
untuk mengesahkan kod status: 🎜🎜Andaikan anda sedang membangunkan API yang API menggunakan HTTP GET untuk mendapatkan semula data daripada pangkalan data. Anda perlu mengesahkan kod status respons untuk memastikan permintaan berjaya diselesaikan: 🎜rrreee🎜 Dengan mengesahkan kod status respons, anda memastikan data hanya dikembalikan jika pelayan berjaya memproses permintaan. 🎜Atas ialah kandungan terperinci Bagaimana untuk mengesahkan kod status respons HTTP di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!