401の場合、wgetを使用してhttpサーバーの応答を取得する方法は?

401の場合、wgetを使用してhttpサーバーの応答を取得する方法は?

認証が失敗しても、さまざまな状況でhttpサーバーの応答をテストする必要があります。認証が失敗すると、私のサーバーは単に含まれている(または他の詳細なメッセージ)401 Unauthorized応答本文を返します。Unauthorized

たとえば、またはcurlを使用すると、httpie応答の応答本文が得られます401

$ 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

しかし、wgetを使ってこれを試しても出力は出ません。

$ 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は終了コード6を返しますが、応答メッセージを確認する必要があります。

以下は、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

Unauthorized応答本文のメッセージは改行で終わるため、Content-Length:13です。)

403サーバーが応答しても同様です404wgetこの場合、応答本文の使い方をご存知ですか?

2017-09-22 編集

--content-on-error私のwget 1.17.1でオプションを見つけました。wget マニュアル)。

たとえば、応答コードの場合は機能しますが、ORコード404では機能しません。4015xx

401参考としてこのエラー

ベストアンサー1

次のコマンドを使用すると、404エラーが発生したときにサーバーの応答を取得できます503wget 1.20.1

wget --no-verbose --save-headers --content-on-error=on --timeout=3 --tries=1 -O- http://127.0.0.1:8080/bla

出力例:

HTTP/1.1 404 Not Found
X-Endpoint-Path: GET /bla
X-Sub-Calls-Count: 0
X-Mdc: XNIO-1 task-11550846786294
X-Child-Calls-Count: 0
X-Hop: 1
Date: Fri, 22 Feb 2019 14:46:26 GMT
Connection: keep-alive
Transfer-Encoding: chunked
Content-Type: application/json;charset=UTF-8

{"id":"266a8c43-81ae-4b73-bb0c-d3e0a37a11c4","createdAt":1550846786327,"httpCode":404,"code":"RESOURCE_NOT_FOUND","message":"RESTEASY003210: Could not find resource for full path: http://127.0.0.1:8080/bla"}http://127.0.0.1:8080/bla:
2019-02-22 15:46:26 ERROR 404: Not Found.

おすすめ記事