MCPcopy Index your code
hub / github.com/code-scan/Goal / readAll

Method readAll

Ghttp/response.go:69–108  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

67 return nil, err
68}
69func (h *Http) readAll() ([]byte, error) {
70 //获取一个新的,如果不存在则会调用new创建
71 buffer := pool.Get().(*bytes.Buffer)
72 buffer.Reset()
73 defer func() {
74 if buffer != nil {
75 //重新放回去
76 pool.Put(buffer)
77 buffer = nil
78 }
79 }()
80 if h.HttpResponse == nil {
81 return nil, fmt.Errorf("HttpResponse is nil")
82 }
83 if h.HttpResponse.Body == nil {
84 return nil, fmt.Errorf("HttpResponse.Body is nil")
85 }
86 defer h.HttpResponse.Body.Close()
87
88 // 如果是gzip压缩则解压
89 if h.HttpResponse.Header.Get("Content-Encoding") == "gzip" {
90 ret, err := ioutil.ReadAll(h.HttpResponse.Body)
91 if err != nil && err != io.EOF {
92 return nil, err
93 }
94 reader, err := gzip.NewReader(bytes.NewReader(ret))
95 if err != nil && err != io.EOF {
96 return ret, nil
97 // return nil, err
98 }
99 defer reader.Close()
100 return ioutil.ReadAll(reader)
101 }
102 _, err := io.Copy(buffer, h.HttpResponse.Body)
103 if err != nil && err != io.EOF {
104 //log.Printf("readAll io.copy failure error:%v \n", err)
105 return nil, fmt.Errorf("readAll io.copy failure error:%v", err)
106 }
107 return buffer.Bytes(), nil
108}
109
110// string的返回值
111func (h *Http) Text() (string, error) {

Callers 2

TextMethod · 0.95
ByteMethod · 0.95

Calls 2

GetMethod · 0.80
CloseMethod · 0.45

Tested by

no test coverage detected