以下是示例代码:

package main

import (
    "fmt"
    "io"
    "net/http"
    "os"
)

func downloadFile(url string, filepath string) error {
    // 发起 GET 请求
    resp, err := http.Get(url)
    if err != nil {
        return err
    }
    defer resp.Body.Close()

    // 创建文件
    file, err := os.Create(filepath)
    if err != nil {
        return err
    }
    defer file.Close()

    // 将响应体写入文件
    _, err = io.Copy(file, resp.Body)
    if err != nil {
        return err
    }

    fmt.Println("Downloaded", url, "to", filepath)
    return nil
}

func main() {
    url := "https://golang.org/dl/go1.17.1.linux-amd64.tar.gz"
    filepath := "/tmp/go.tar.gz"
    err := downloadFile(url, filepath)
    if err != nil {
        fmt.Println(err)
        return
    }
}

该函数使用 Go 标准库中的 httpioos 包,通过发起 GET 请求并将响应体写入文件来下载文件。函数返回一个可能出现的错误。在函数中,我们使用 defer 关键字来确保在函数结束时关闭响应体和文件句柄。在主函数中,我们调用 downloadFile 函数并打印任何可能的错误。

golang 编写一个函数,实现下载文件,参数为url和文件路径

原文地址: https://www.cveoy.top/t/topic/vqA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录