1. ホーム
  2. json

[解決済み] HTTPレスポンスボディ(JSON)のみを出力し、他のヘッダ等を出力しないcURLを取得する方法

2022-09-22 12:30:35

質問

私は以下のようにサービスの応答を取得するためにbashスクリプトでcurlを使用しています。

response=$(curl -isb -H "Accept: application/json" "http://host:8080/some/resource")

サービスのレスポンスはjsonタイプで、ブラウザ上では全く問題なくレスポンスが得られました。

しかし、curlのレスポンスには他の不要なもの(この場合はset-cookieやcontent-lengthヘッダなど)があり、実際のレスポンスが食われてしまうことがあります。

以下は echo $response >です。

 Set-Cookie: rack.session=BAh7CEkiD3Nlc3Npb25faWQGOgZFVEkiRWJlY2JiOTE2M2Q1ZWI4NThjMDdi%0AYjRiOWRjMGMxMGEwYTBkMjE3NmJhZDVjYzY4YjY4ZTlmMTE2ZGVkYWE3MTMG%0AOwBGS
SIJY3NyZgY7AEZJIiVhZmQ2MmUyZGMxMzFmOGEwMjg3NDlhNWM3YmVm%0AN2FjNwY7AEZJIg10cmFja2luZwY7AEZ7B0kiFEhUVFBfVVNFUl9BR0VOVAY7%0AAFRJIi00MTc0OGM2MWNkMzljZTYxNzY3ZjU0
Y2I5OTdiYWRkN2MyNTBkYmU4%0ABjsARkkiGUhUVFBfQUNDRVBUX0xBTkdVQUdFBjsAVEkiLWRhMzlhM2VlNWU2%0AYjRiMGQzMjU1YmZlZjk1NjAxODkwYWZkODA3MDkGOwBG%0A--ee97a62095e7d42129
 tontent-Length: 354c8; path=/; HttpOnly

これは私のレスポンス解析のロジックを壊しています。

私はこれが断続的に起こっているのを見たことがあり、それは奇妙なことです。

を取得する方法はありますか? "のみ" json response from cUR output?

私はcurlのドキュメントを調べましたが、何も見ることができませんでした/または私はそれを見逃している可能性があります。

どのように解決するのですか?

を指定しています。 -i オプションを指定しています。

-i , --include

(HTTP) 出力にHTTP-headerを含める . HTTP-headerには、server-name、ドキュメントの日付、HTTP-versionなどが含まれます...。

コマンドラインからそのオプションを削除するだけです。

response=$(curl -sb -H "Accept: application/json" "http://host:8080/some/resource")