Skip to content

Commit a70a847

Browse files
authored
fix: return empty data field for empty request bodies (#125)
When a request to `/anything` has an empty body, the `data` field of the output should be the empty string. Currently, `go-httpbin is returning `data:application/octet-stream;base64,`. - Should the output actually be null? That would match `files`, `form`, and `json`, but also would require deeper changes since `Data` is stored as a string not a pointer, and I didn't want to mess with things any more than I had to. An empty string works fine for my purposes - how can I test this PR? I tried but I got confused by the TestAnything method - all the current tests pass under this change This PR closes #124. Before: ``` $ curl -s 'http://0.0.0.0:8080/anything?one=two' { "args": { "one": [ "two" ] }, "headers": { "Accept": [ "*/*" ], "Host": [ "0.0.0.0:8080" ], "User-Agent": [ "curl/7.88.1" ] }, "method": "GET", "origin": "127.0.0.1:60402", "url": "http://0.0.0.0:8080/anything?one=two", "data": "data:application/octet-stream;base64,", "files": null, "form": null, "json": null } ``` After: ``` $ curl -s 'http://0.0.0.0:8080/anything?one=two' { "args": { "one": [ "two" ] }, "headers": { "Accept": [ "*/*" ], "Host": [ "0.0.0.0:8080" ], "User-Agent": [ "curl/7.88.1" ] }, "method": "GET", "origin": "127.0.0.1:60595", "url": "http://0.0.0.0:8080/anything?one=two", "data": "", "files": null, "form": null, "json": null } ```
1 parent 1223a73 commit a70a847

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

httpbin/helpers.go

+5
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,11 @@ func parseBody(w http.ResponseWriter, r *http.Request, resp *bodyResponse) error
126126
}
127127
resp.Data = string(body)
128128

129+
// if we read an empty body, there's no need to do anything further
130+
if len(resp.Data) == 0 {
131+
return nil
132+
}
133+
129134
// After reading the body to populate resp.Data, we need to re-wrap it in
130135
// an io.Reader for further processing below
131136
r.Body.Close()

0 commit comments

Comments
 (0)