首页电脑使用如何用Golang处理HTTP响应状态错误_Golang HTTP响应状态错误实践 golang in action

如何用Golang处理HTTP响应状态错误_Golang HTTP响应状态错误实践 golang in action

圆圆2025-11-18 05:01:09次浏览条评论

答案:处理 HTTP 响应需要检查 StatusCode 并关闭 Body。首先,确定 resp.StatusCode 是否为 http.StatusOK。

如何用golang处理http响应状态错误_golang http响应状态错误实践

在 Go 语言中,关键在于及时检查响应的 Status 和 StatusCode,并正确释放资源。p>

如果在发出请求后使用 http.Get 或 http.Client.Do,则必须检查 resp.StatusCode。即使请求没有网络错误,状态码也可能指示业务级别的故障,例如 404、500 等。

通常的做法是与 http.StatusOK(即 200)进行比较:resp. err := http.Get("https://api.example.com/data") if err != nil { log.Fatal(err) } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { log.Printf("请求失败:d s", resp.StatusCode, resp.Status) return } 200 状态场景

并非所有错误都应该直接中断。有些接口可能使用 400 表示参数错误,401 表示未授权,这些需要单独处理。 log.Println("电影电视,请方法Token")   case http.StatusNotFound:     log.Println("电影设计最作")   default:     log.Printf("服务器错误: d", resp.StatusCode) } 确保 Body 已正确关闭

无论状态码是什么,只要 resp 不为 nil,就可以调用 resp.Body.Close() 来防止内存泄漏。即使状态码为 500,也必须读取并关闭 Body。

28 查看详情

常见错误是在返回之前判断状态时忘记关闭连接:❌ 错误示例:if resp.StatusCode != 200 { return // 忘记关闭连接,可能导致连接泄露 }

正确的方法是使用 defer,或在每个分支中显示。封装通用错误处理函数

在项目中,可以封装一个辅助函数,用于处理状态码并返回可读的错误信息: func checkResponse(resp *http.Response) error {   if resp.StatusCode == http.StatusOK {     return nil   }   body, _ := io.ReadAll(resp.Body)   return fmt.Errorf("HTTP d: s, body: s",     resp.StatusCode, resp.Status, string(body)) }

使用方法:if err := checkResponse(resp); err != nil { log.Fatal(err) }

以上是如何使用 Golang 处理 HTTP 响应状态错误_Golang HTTP 响应状态错误练习详细内容,更多内容请关注乐哥常识网其他相关文章!Golang 中查找索引字符的方法

如何用Golang处
edge浏览器网页版入口 edge浏览器地址栏搜索改为百度
相关内容
发表评论

游客 回复需填写必要信息