一尘不染

限制http get的带宽

go

我是golang的初学者。

有什么方法可以限制golang的http.Get()带宽使用率?我发现了这一点:http
:
//godoc.org/code.google.com/p/mxk/go1/flowcontrol,但是我不确定如何将两者组合在一起。我将如何访问http
Reader?


阅读 241

收藏
2020-07-02

共1个答案

一尘不染

github有软件包的更新版本

您可以通过包装 io.Reader

这是一个完整的示例,它将完整地显示Google veeeery的主页。

这种包装接口以实现新功能非常好的Go风格,您在进入Go的过程中会看到很多。

package main

import (
    "io"
    "log"
    "net/http"
    "os"

    "github.com/mxk/go-flowrate/flowrate"
)

func main() {
    resp, err := http.Get("http://google.com")
    if err != nil {
        log.Fatalf("Get failed: %v", err)
    }
    defer resp.Body.Close()

    // Limit to 10 bytes per second
    wrappedIn := flowrate.NewReader(resp.Body, 10)

    // Copy to stdout
    _, err = io.Copy(os.Stdout, wrappedIn)
    if err != nil {
        log.Fatalf("Copy failed: %v", err)
    }
}
2020-07-02