📌  相关文章
📜  golang http 保存下载的文件 - Go 编程语言(1)

📅  最后修改于: 2023-12-03 15:15:22.126000             🧑  作者: Mango

Golang HTTP 保存下载的文件

在Golang中,我们可以使用net/http包来进行HTTP请求,这包含了下载文件的功能。本文将介绍如何使用Golang下载并保存文件。

发起一个HTTP请求

使用net/http包创建一个HTTP请求很简单。以下是一个使用GET请求下载文件的示例代码:

resp, err := http.Get("http://example.com/example.txt")
if err != nil {
    // 处理错误
}
defer resp.Body.Close()
读取响应体并将其保存到文件中

使用http.Response的Body字段可以访问响应体。我们可以使用ioutil包从响应体中读取并保存到文件中。

以下是示例代码:

package main

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

func main() {
    url := "http://example.com/example.txt"
    resp, err := http.Get(url)
    if err != nil {
        fmt.Println("Http get error:", err)
        return
    }
    defer resp.Body.Close()
    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        fmt.Println("Read error:", err)
        return
    }

    err = ioutil.WriteFile("example.txt", body, os.ModePerm)
    if err != nil {
        fmt.Println("Write error:", err)
        return
    }
    fmt.Println("Done")
}

如上代码,文件内容将保存到example.txt。

反馈

此处学习如何使用Golang下载并保存文件。代码示例完成了以下功能:

  • 发起了HTTP GET请求。
  • 读取响应体并将其保存到文件中。

代码片段如下:

package main

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

func main() {
    url := "http://example.com/example.txt"
    resp, err := http.Get(url)
    if err != nil {
        fmt.Println("Http get error:", err)
        return
    }
    defer resp.Body.Close()
    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        fmt.Println("Read error:", err)
        return
    }

    err = ioutil.WriteFile("example.txt", body, os.ModePerm)
    if err != nil {
        fmt.Println("Write error:", err)
        return
    }
    fmt.Println("Done")
}