在 Golang 中驗證 HTTP 回應狀態碼的方法有:使用 http.Response.StatusCode,直接比較回應狀態碼與預期值。建立自訂錯誤類型,包含狀態碼和錯誤訊息,並透過擷取錯誤來驗證狀態碼。
如何在Golang 中驗證HTTP 回應狀態碼
在Golang 中使用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
驗證狀態碼的實戰案例:
假設你正在開發一個API,該API 使用HTTP GET 從資料庫中檢索資料。你需要驗證回應的狀態代碼以確保請求成功完成:
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) } // 解析响应并返回数据 }
透過驗證回應狀態碼,你可以確保只有在伺服器成功處理請求時才傳回資料。
以上是在 Golang 中如何驗證 HTTP 回應狀態碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!