HTTPieを使用していくつかのAPIを呼び出すためのbashスクリプトがあります。レスポンスボディとHTTPステータスコードの両方を取得したい。ここでbashスクリプトでHTTPieを使用して実際のレスポンスコードとレスポンス本文を取得する方法は?
は、私がこれまでの最高管理しているされています
rspBody=$(http $URL --check-status --ignore-stdin)
statusCode=$?
コマンド置換は私が体を取得することができますし、「--check-ステータスが」フラグは私に単純化されたコードを示します(たとえば、0、3 、4、等)を含む。
問題は、ファイルに詳細なダンプを行うことなく、実際のステータスコードを取得する方法はあります私は401と404のコードを言うの間に区別する必要があるが、私は唯一の4
を取得しています物事を解析しますか?
[編集]
これは、それは誰にも役立ちます場合は、私の回避策ですが、私はまだ良いアイデアのように使用すると、1つ持っていると思います場合:
TMP=$(mktemp)
FLUSH_RSP=$(http POST ${CACHE_URL} --check-status --ignore-stdin 2> "$TMP")
STAT_FAMILY=$?
flush_err=$(cat "$TMP" | awk '{
where = match($0, /[0-9]+/)
if (where) {
print substr($0, RSTART, RLENGTH);
}
}' -)
rm "$TMP"
をSTDERRは、(通常は)3が含まれています私はそれを一時ファイルにダンプし、変数内のレスポンスボディ(STDOUTから)を捕捉することができます。
次に、その一時ファイルを解析して数値を探しますが、これは私には壊れやすいようです。
また、これは一時ファイルが必要ですが、それは少しクリーナーです。ありがとう。 [編集] 明らかに、私は答えを投票するのに十分な代理人がいません。申し訳ありません。 –
ああ、ちょうどチェックマークをクリックしなければならないことが分かった。ありがとう! –