当读取响应体和写入文件时,你可以使用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助手提供,问题来源于学员提问


        
        
        
        
        
        
        
        
        
                
                
                
                
                
                
                