当读取响应体和写入文件时,你可以使用io.Copy
函数来简化代码。下面是使用io.Copy
的修改后的实现方式:
func main() {
http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true}
resp, err := http.Get("https://localhost:8080/inquire?filename=download.txt")
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
log.Fatalf("Request failed with status code %d", resp.StatusCode)
}
file, err := os.Create("downloaded_file.txt")
if err != nil {
log.Fatal(err)
}
defer file.Close()
_, err = io.Copy(file, resp.Body)
if err != nil {
log.Fatal(err)
}
log.Println("Download complete!")
}
在这个修改后的代码中,我们先创建了一个名为 file
的文件对象,并在操作完成后关闭它。然后,我们使用 io.Copy
函数将响应体内容直接拷贝到 file
中,省去了手动读取和写入的步骤。
请注意,在使用新的实现方式之前,确保已经导入了相应的包:import "os"
和 import "io"
。
内容由零声教学AI助手提供,问题来源于学员提问