在Go语言中,HTTP响应体可以通过`http.Response`结构的`Body`字段进行访问和关闭。以下是一个示例代码,演示如何关闭HTTP响应体: ```go package main import ( "fmt" "io" "net/http" ) func main() { // 创建一个http.Client并发送HTTP请求 resp, err := http.Get("https://example.com") if err != nil { fmt.Println("HTTP请求失败:", err) return } defer resp.Body.Close() // 关闭响应体 // 检查响应状态码 if resp.StatusCode != http.StatusOK { fmt.Println("HTTP请求返回错误状态码:", resp.StatusCode) return } // 读取响应体内容并打印 body := &bytes.Buffer{} _, err = io.Copy(body, resp.Body) if err != nil { fmt.Println("读取响应体失败:", err) return } fmt.Println("响应体内容:", body.String()) } ``` 在上述示例中,通过`resp.Body.Close()`关闭HTTP响应体。使用`defer`关键字可以确保在函数返回之前关闭响应体,以释放与该响应关联的资源。示例中还演示了如何通过`io.Copy`将响应体内容读取到一个`bytes.Buffer`中,并打印出来。 如果在使用响应体之后未关闭它,可能会导致资源泄漏和其他问题。记得在使用完响应体后立即关闭它。 [2023-11-09 18:13:01 | AI写代码神器 | 345点数解答]