go如何下载文件并关闭连接
时间: 2024-04-29 16:26:41 浏览: 79
在Go语言中,可以使用net/http包中的Get()函数来下载文件。下载完成后,需要手动关闭连接以释放资源。以下是一个示例代码,演示如何下载文件并关闭连接:
```go
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
fileUrl := "https://example.com/file.zip"
err := DownloadFile("file.zip", fileUrl)
if err != nil {
panic(err)
}
fmt.Println("Downloaded: " + fileUrl)
}
func DownloadFile(filepath string, url string) error {
// Create the file
out, err := os.Create(filepath)
if err != nil {
return err
}
defer out.Close()
// Get the data
resp, err := http.Get(url)
if err != nil {
return err
}
defer resp.Body.Close()
// Write the body to file
_, err = io.Copy(out, resp.Body)
if err != nil {
return err
}
return nil
}
```
在上面的代码中,我们使用http.Get()函数来下载文件,并使用io.Copy()函数将响应体写入文件。在函数返回之前,我们通过defer语句关闭了文件和响应体的连接。