我想使用go从互联网上仅下载一部分类似文本的文件。我要从中下载的网站似乎不遵守curl --max-filesize
和--range
。另外,我读到http MaxBytesReader
仍会下载整个文件,但只存储其中的一部分。
是否有办法只获取文件的第一个kb,然后关闭连接?相当于在chrome上加载大页面时按“ x”。我在想我可以运行一个将网站读取到文件的线程,然后在一两个毫秒后杀死该线程。这可能吗?
谢谢
一种没有太多错误处理的简单方法(可能需要添加):
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))
}