@@ -10,17 +10,11 @@ import (
10
10
11
11
// Writes response into response writer
12
12
func WriteResponse (rw http.ResponseWriter , res * http.Response ) {
13
- // Write header
14
- for key , values := range res .Header {
15
- for _ , value := range values {
16
- rw .Header ().Add (key , value )
17
- }
18
- }
13
+ copyHeaders (rw .Header (), res .Header )
19
14
20
15
// The preferred way to send Trailers is to predeclare in the headers
21
16
// which trailers you will later send by setting the "Trailer" header
22
17
// to the names of the trailer keys which will come later.
23
- // See Examples on https://pkg.go.dev/net/http#ResponseWriter
24
18
for key := range res .Trailer {
25
19
rw .Header ().Add ("Trailer" , key )
26
20
}
@@ -30,12 +24,7 @@ func WriteResponse(rw http.ResponseWriter, res *http.Response) {
30
24
// Write body
31
25
io .Copy (rw , res .Body )
32
26
33
- // Write Trailers headers
34
- for key , values := range res .Trailer {
35
- for _ , value := range values {
36
- rw .Header ().Add (key , value )
37
- }
38
- }
27
+ copyHeaders (rw .Header (), res .Trailer )
39
28
}
40
29
41
30
// Dumps a http.Response into a bytes.Buffer
@@ -54,3 +43,11 @@ func ReadResponse(resData []byte, req *http.Request) *http.Response {
54
43
}
55
44
return res
56
45
}
46
+
47
+ func copyHeaders (dst , src http.Header ) {
48
+ for key , values := range src {
49
+ for _ , value := range values {
50
+ dst .Add (key , value )
51
+ }
52
+ }
53
+ }
0 commit comments