|
6 | 6 | "fmt"
|
7 | 7 | "io"
|
8 | 8 | "net/http"
|
| 9 | + "net/url" |
9 | 10 | "slices"
|
10 | 11 | "sort"
|
11 | 12 | "strings"
|
@@ -141,13 +142,18 @@ func BuildDebugStrFromHTTPRequest(req *http.Request, includeHeaders []string) ([
|
141 | 142 | return nil, fmt.Errorf("request is invalid")
|
142 | 143 | }
|
143 | 144 |
|
144 |
| - status := fmt.Sprintf("request to %s: %s %s", req.URL, req.Method, req.Proto) |
| 145 | + // unescape url in order to get rid of e.g. %40 |
| 146 | + unescapedURL, err := url.PathUnescape(req.URL.String()) |
| 147 | + if err != nil { |
| 148 | + return nil, fmt.Errorf("unescape request url: %w", err) |
| 149 | + } |
| 150 | + |
| 151 | + status := fmt.Sprintf("request to %s: %s %s", unescapedURL, req.Method, req.Proto) |
145 | 152 |
|
146 | 153 | headersMap := buildHeaderMap(req.Header, includeHeaders)
|
147 | 154 | headers := fmt.Sprintf("request headers: %v", BuildDebugStrFromMap(headersMap))
|
148 | 155 |
|
149 | 156 | var save io.ReadCloser
|
150 |
| - var err error |
151 | 157 |
|
152 | 158 | save, req.Body, err = drainBody(req.Body)
|
153 | 159 | if err != nil {
|
@@ -184,13 +190,19 @@ func BuildDebugStrFromHTTPResponse(resp *http.Response, includeHeaders []string)
|
184 | 190 | return nil, fmt.Errorf("response is invalid")
|
185 | 191 | }
|
186 | 192 |
|
187 |
| - status := fmt.Sprintf("response from %s: %s %s", resp.Request.URL, resp.Proto, resp.Status) |
| 193 | + var err error |
| 194 | + // unescape url in order to get rid of e.g. %40 |
| 195 | + unescapedURL, err := url.PathUnescape(resp.Request.URL.String()) |
| 196 | + if err != nil { |
| 197 | + return nil, fmt.Errorf("unescape response url: %w", err) |
| 198 | + } |
| 199 | + |
| 200 | + status := fmt.Sprintf("response from %s: %s %s", unescapedURL, resp.Proto, resp.Status) |
188 | 201 |
|
189 | 202 | headersMap := buildHeaderMap(resp.Header, includeHeaders)
|
190 | 203 | headers := fmt.Sprintf("response headers: %v", BuildDebugStrFromMap(headersMap))
|
191 | 204 |
|
192 | 205 | var save io.ReadCloser
|
193 |
| - var err error |
194 | 206 |
|
195 | 207 | save, resp.Body, err = drainBody(resp.Body)
|
196 | 208 | if err != nil {
|
|
0 commit comments