Webリクエストを行う場合、タイミングが重要です。誰もがWebページが読み込まれるのを延々と待ったり、サーバーが応答するのを待ったりするのは好きではありません。curlを使用してWebからデータを取得している場合は、リクエストにかかる時間に制限を設ける方法があることを知って喜ばれるでしょう。
データ取得操作を確実に制御できるように、curlリクエスト時間を制限する方法を以下に示します。
方法1: --max-timeオプションを使用する
curlコマンドの実行中に、-mまたは--max-timeオプションを指定して、リクエストに厳格な時間制限を設定できます。このオプションを使用すると、コマンドがタイムアウトエラーコード(28)で終了するまで待機できる最大時間を秒数で指定できます。
curl --max-timе [sеconds] [URL]
0.3は300ミリ秒、5.46は5,460ミリ秒、20は20秒を意味するように、最大値を小数点精度で定義できます。
例えば:
curl -o test.md --max-time 30 https://github.com/test/file1
このコマンドは、指定されたGitHub URLにリクエストを送信します。応答データをtest.mdとして保存し、最大30秒以内に完了します。
方法2: --connect-timeoutオプションを使用する
curlがホストへの接続を試行するのにかかる時間を制御するには、--connect-timeoutオプションを使用します。これにより、DNSルックアップやその後のTCP、TLS、QUICハンドシェイクを含む、curlが接続手順を完了するための最大時間制限が設定されます。
curlが指定した時間枠内に接続を確立できない場合、タイムアウトエラーコード(28)で終了します。
curl --connect-timeout [seconds] [URL]
例えば:
curl -o test.md --connect-time 20 https://github.com/test/file
ここでは、curlコマンドがURLで指定されたファイルを取得し、test.mdとして保存し、サーバーとの接続を確立するために20秒の制限を適用します。
迅速な取得のための制御curlリクエスト
時間がお金である世界では、curlリクエスト時間を制限できることは便利なスキルです。--connect-timeoutオプションと--max-timeオプションのどちらを選択しても、データ取得タスクを管理できます。ですから、もう延々と待つ必要はありません。効率的で制御されたWebリクエストを行う時が来ました。
次回curlリクエストが終了するのを待っていることに気付いたら、これらの方法を思い出して、自分の条件でcurlを動作させましょう。
コメントする