登录
首页 >  Golang >  Go问答

使用 URL 下载 zip 文件

来源:stackoverflow

时间:2024-03-22 14:33:30 107浏览 收藏

本文介绍了如何使用 Go 中的 `http.Get` 从 URL 下载 zip 文件。它指出,该 URL 中的文件不存在,因此 `http.Get` 不会抛出错误,但状态代码不是 200。因此,在创建文件之前检查响应的状态代码非常重要。文章提供了使用 `http.Get` 下载 zip 文件的示例代码,其中包括检查状态代码并创建文件的步骤。

问题内容

尝试从以下 url 下载 zip 文件:

https://www.3gpp.org/ftp//specs/archive/29_series/29.512/29.512-f20.zip

我尝试在 go 中使用 http.get 下载:

resp, err := http.Get(specUrl)
if err != nil {
    return err
}

需要帮助下载 zip 文件。


解决方案


http.get 可以允许下载任何文件。但问题的链接指向一个找不到的文件。没有抛出错误,但状态代码不是 200(正常)。在继续并创建从响应中获取的文件之前,必须检查响应的状态代码。

func main() {
    specUrl := "https://www.3gpp.org/ftp//Specs/archive/29_series/29.512/29.512-f20.zip"
    resp, err := http.Get(specUrl)
    if err != nil {
        fmt.Printf("err: %s", err)
    }


    defer resp.Body.Close()
    fmt.Println("status", resp.Status)
    if resp.StatusCode != 200 {
        return
    }

    // Create the file
    out, err := os.Create("test.zip")
    if err != nil {
        fmt.Printf("err: %s", err)
    }
    defer out.Close()

    // Write the body to file
    _, err = io.Copy(out, resp.Body)
    fmt.Printf("err: %s", err)
}

终于介绍完啦!小伙伴们,这篇关于《使用 URL 下载 zip 文件》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>