0

Labstack Echo v4 最近更新为包含ModifyResponse钩子(ala golang 的 httputil ReverseProxy)。

大多数使用它的示例似乎都利用了 ioutil.ReadAll()。

例如:

func UpdateResponse(r *http.Response) error {
    b, _ := ioutil.ReadAll(r.Body)
    buf := bytes.NewBufferString("Monkey")
    buf.Write(b)
    r.Body = ioutil.NopCloser(buf)
    r.Header["Content-Length"] = []string{fmt.Sprint(buf.Len())}
    return nil
}

我要做的是避免等待整个响应(来自 ReadAll)并监视流中的某些内容(即class='blue')然后用不同的文本替换它(即class='blue-green'

如何有效地使用流和尽可能少的分配来做到这一点?

4

0 回答 0