I need to test my http server responses in various cases, even for failed authentication. In case of failed authentication, my server returns
401 Unauthorized and also a response body which simple contains
Unauthorized (or maybe some other detailed message).
httpie, I got those response body in case of
$ curl http://10.5.1.1/bla Unauthorized $ curl http://10.5.1.1/bla --digest --user joe:wrong Unauthorized $ http http://10.5.1.1/bla -b Unauthorized $ http http://10.5.1.1/bla -b --auth-type digest --auth joe:wrong Unauthorized
But when trying this using wget, I got no output:
$ wget http://10.5.1.1/bla -q -O /dev/stdout $ wget http://10.5.1.1/bla -q -O /dev/stdout --user joe --password wrong
wget returns with exitcode 6 in this case, but I need to check the response message.
Here is a dump of the complete traffic, captured using httpie:
$ http http://10.5.1.1/bla --print hbHB GET /bla HTTP/1.1 Accept: */* Accept-Encoding: gzip, deflate Connection: keep-alive Host: 10.5.1.1 User-Agent: HTTPie/0.9.2 HTTP/1.1 401 Unauthorized Connection: keep-alive Content-Length: 13 Content-Type: text/plain Date: 2017-08-27 23:01:07 Server: Vistra-I St10 SW218 HW010 WWW-Authenticate: Digest realm="Vistra-I", qop="auth", nonce="a0c5d461f2b74b2b797b62f54200d125", opaque="0123456789abcdef0123456789abcdef" Unauthorized
(Note that the
Unauthorized message in the response body ends with a new line character, that's why Content-Length: 13)
Same thing, if the server respond with
404 et cetera.
Any idea how to get the response body using
wget in this case?
--content-on-error option in my wget 1.17.1 (see also wget manual).
This works in case of e.g. response code
404 but not for
401 see this bug.