ZBLOG

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.Clo...

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

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://sdn.0voice.com/?id=3417

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?