652

-Iのオプションとして、HTTP HEAD を使用してヘッダーのみを要求できますcurl(1)

$ curl -I /

長い HTML 応答本文はコマンドラインで取得するのが面倒なので、POST 要求のフィードバックとしてヘッダーのみを取得したいと考えています。ただし、HEAD と POST は 2 つの異なるメソッドです。

POST 要求に対する応答ヘッダーのみを表示するように cURL を取得するにはどうすればよいですか?

4

8 に答える 8

863
-D, --dump-header <file>
       Write the protocol headers to the specified file.

       This  option  is handy to use when you want to store the headers
       that a HTTP site sends to you. Cookies from  the  headers  could
       then  be  read  in  a  second  curl  invocation by using the -b,
       --cookie option! The -c, --cookie-jar option is however a better
       way to store cookies.

-S, --show-error
       When used with -s, --silent, it makes curl show an error message if it fails.

-L/--location
      (HTTP/HTTPS) If the server reports that the requested page has moved to a different location (indicated with a Location: header and a 3XX response
      code), this option will make curl redo the request on the new place. If used together with -i/--include or -I/--head, headers from  all  requested
      pages  will  be  shown.  When authentication is used, curl only sends its credentials to the initial host. If a redirect takes curl to a different
      host, it won’t be able to intercept the user+password. See also --location-trusted on how to change this. You can limit the amount of redirects to
      follow by using the --max-redirs option.

      When curl follows a redirect and the request is not a plain GET (for example POST or PUT), it will do the following request with a GET if the HTTP
      response was 301, 302, or 303. If the response code was any other 3xx code, curl will re-send the following  request  using  the  same  unmodified
      method.

マニュアルページから。それで

curl -sSL -D - www.acooke.org -o /dev/null

リダイレクトに従い、ヘッダーを stdout にダンプし、データを /dev/null に送信します (これは POST ではなく GET ですが、POST でも同じことができます - データの POST に既に使用しているオプションを追加するだけです)。

出力「ファイル」が標準出力であることを示すの-後に注意してください。-D

于 2012-04-08T04:18:14.307 に答える
228

他の回答では、応答本文をダウンロードする必要があります。ただし、ヘッダーのみをフェッチする POST リクエストを作成する方法があります。

curl -s -I -X POST http://www.google.com

はそれ-I自体で HEAD リクエストを実行しますが、これは によってオーバーライドされ-X POSTて POST (またはその他の) リクエストを実行し、ヘッダー データのみを取得できます。

于 2016-07-31T00:12:53.873 に答える
60

長い応答本文 (および他のさまざまな同様の状況) の場合、私が使用する解決策は常に にパイプするlessことです。

curl -i https://api.github.com/users | less

また

curl -s -D - https://api.github.com/users | less

仕事をします。

于 2014-11-05T13:44:44.760 に答える
19

はるかに簡単です – これは、ショートリンクの追跡を避けるために私が使用しているものです –以下は次のとおりです。

curl -IL http://bit.ly/in-the-shadows

…リンクもたどります

于 2016-03-10T21:18:03.660 に答える
14

他の回答はすべての状況でうまくいきませんでしたが、私が見つけることができる最良の解決策 (POST同様に作業する) をここから取得しました:

curl -vs 'https://some-site.com' 1> /dev/null

于 2016-02-14T09:23:06.573 に答える