メインコンテンツまでスキップ

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:escapeeasy: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 を使用している