HEAD リクエストを送信する (http.head)
宣言
HTTP ステータスコード, レスポンスヘッダーの JSON テキスト = http.head(URL [, タイムアウト秒数, リクエストヘッダー, URL を ESCAPE しない ])
宣言(名前付き引数)
20250625 から対応。進捗パラメータは 20260402 以降のバージョンで対応
HTTP ステータスコード, レスポンスヘッダーの JSON テキスト = http.head{
url = URL;
timeout = タイムアウト秒数;
headers = リクエストヘッダー;
params = Query パラメータ;
progress = 進捗コールバック関数;
progress_interval_ms = 進捗コールバック間隔(ミリ秒);
}
パラメータ
- URL
文字列型。リクエスト先の URL。このメソッドはデフォルトで URL に escape 処理を行う。不要な場合は URL を ESCAPE しない パラメータの説明を参照 - タイムアウト秒数
数値型の省略可能なパラメータ。リクエストのタイムアウト時間を秒単位で指定する。デフォルトは 10 - リクエストヘッダー
テーブル型の省略可能なパラメータ。送信するリクエストのヘッダー情報を {field1 = value1, field2 = value2, ...} の形式で指定する。デフォルトは {} - Query パラメータ
テーブル型の省略可能なパラメータ。送信するリクエストの Query パラメータを {field1 = value1, field2 = value2, ...} の形式で指定する。デフォルトは {} - 進捗コールバック関数
関数型の省略可能なパラメータ。20260402 以降のバージョンで対応。リクエストの進捗が変化したときに呼び出され、コールバック関数の最初の引数に現在の進捗情報が渡される - 進捗コールバック間隔(ミリ秒)
整数型の省略可能なパラメータ。20260402 以降のバージョンで対応。進捗コールバックを呼び出す間隔をミリ秒単位で指定する - URL を ESCAPE しない
ブール型の省略可能なパラメータ。true を指定すると URL を escape せずに直接リクエストする。デフォルトは false
URL に独自の escape 処理を行う場合は、lcurl モジュールの easy:escape、easy:unescape を参照
戻り値
- HTTP ステータスコード
整数型。今回のリクエストの http ステータスコードを返し、タイムアウトした場合は -1 を返す - レスポンスヘッダーの JSON テキスト
文字列型または nil。リクエスト完了時に JSON 形式のヘッダー情報を返し、タイムアウトした場合は nil を返す
説明
HTTP/1.1 プロトコルの HEAD メソッドを使用してネットワークリソースのヘッダー情報を取得する
HEAD プロトコルでは通常、GET リクエストと同じレスポンスヘッダーを取得できるが、実際のボディ内容は返されない
この関数は処理を譲ることがある。関数が戻る前に、ほかのスレッドに実行の機会が与えられる場合がある
進捗コールバック関数が受け取る info の構造は次のとおり:
{
count_of_bytes_sent = 送信済みバイト数;
count_of_bytes_expected_to_send = 送信予定バイト数;
count_of_bytes_received = 受信済みバイト数;
count_of_bytes_expected_to_receive = 受信予定バイト数;
}
例
local c, h = http.head("https://www.xxtouch.app/测试文本.txt")
if c==200 then -- 返されたステータスコードが HTTP_OK の場合
sys.alert(h) -- 取得したヘッダー情報を出力
end
注記:上記のコードでは、この章で扱っていない関数 sys.alert を使用している