限制HTTP响应的读数
在阅读HTTP响应(跳过太大响应)时,我想使用 limitedReader < /a>。
这是正确的方法吗?
func getRequestData(req *http.Request, client *http.Client,
responseSizeLimit int64) ([]byte, error) {
resp, err := client.Do(req)
if err != nil {
return nil, err
}
defer func() {
io.Copy(ioutil.Discard, resp.Body) // response body must be read to the end and closed
resp.Body.Close()
}()
buffer := bufio.NewReader(resp.Body)
reader := io.LimitReader(buffer, responseSizeLimit)
return ioutil.ReadAll(reader)
}
如果我想返回io.reader
而不是[]字节
,http.response.body.body
and code>和是否有可能限制阅读器
?
I want to discard all bytes over a given limit during reading of HTTP Response (skip too large response) using LimitedReader.
Is this the correct way to do that?
func getRequestData(req *http.Request, client *http.Client,
responseSizeLimit int64) ([]byte, error) {
resp, err := client.Do(req)
if err != nil {
return nil, err
}
defer func() {
io.Copy(ioutil.Discard, resp.Body) // response body must be read to the end and closed
resp.Body.Close()
}()
buffer := bufio.NewReader(resp.Body)
reader := io.LimitReader(buffer, responseSizeLimit)
return ioutil.ReadAll(reader)
}
And what if I want to return io.Reader
instead of []byte
, is it possible for http.Response.Body
and limitedReader
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论