2

サーバーからデータをプルしていますが、プルする前にデータのタイプを知る必要があります。応答ヘッダーのcontent-typeを確認できることはわかっており、

curl --head http://x.com/y/z

ただし、一部のサーバーは「HEAD」コマンドをサポートしていません(501が実装されていない応答を受け取ります)。

どういうわけかcurlでGETを実行し、すべてのヘッダーが受信されたらすぐに切断することは可能ですか?

4

1 に答える 1

2

次の答えを確認してください。

https://stackoverflow.com/a/5787827

ストリーミング。UNIXの哲学とパイプ:それらはデータストリームです。curlとGETはunixフィルターであるため、受信パイプ(dd)を終了すると、curlまたはGETが早期に終了します(SIGPIPE)。サーバーが送信を停止するのに十分スマートであるかどうかはわかりません。ただし、TCPレベルでは、応答がなくなるとパケットの再試行を停止すると思います。@sehe

この方法を使用すると、必要な数のバイトをダウンロードして、リクエストをキャンセルできるはずです。空白行を受け取った後に終了するように魔法をかけることもできます。これは、ヘッダーの終わりを意味します。

于 2012-07-25T17:44:20.353 に答える