仅在GOlang中下载文件的一部分

问题描述 投票:0回答:1

我想使用go从互联网上仅下载一部分类似文本的文件。我要从中下载的网站似乎不遵守curl --max-filesize--range。另外,我读到http MaxBytesReader仍会下载整个文件,但只存储其中的一部分。

是否有办法只获取文件的第一个kb,然后关闭连接?相当于在chrome上加载大页面时按“ x”。我在想我可以运行一个将网站读取到文件的线程,然后在一两个毫秒后杀死该线程。这可能吗?

谢谢

http go curl
1个回答
0
投票

一种没有太多错误处理的简单方法(可能需要添加):

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

const readLimit = 1024 // bytes

func main() {
    resp, err := http.Get("http://example.com/")
    if err != nil {
       // handle error
    }

    fixedReader := io.LimitedReader{R: resp.Body, N: readLimit}

    data, _ := ioutil.ReadAll(fixedReader)
    resp.Body.Close()
    fmt.Println(string(data))
}
© www.soinside.com 2019 - 2024. All rights reserved.