使用URL下载zip文件

时间:2019-08-09 13:53:58

标签: go

尝试从以下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文件时需要帮助。

1 个答案:

答案 0 :(得分:1)

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)
}