Chuyển tới nội dung chính

Gửi yêu cầu HEAD (http.head)

Khai báo

code, res_headers_json = http.head(URL [, timeout_secs, headers, url_no_escape])

Khai báo (đối số có tên)

Hỗ trợ từ phiên bản 20250625; các tùy chọn tiến trình được hỗ trợ từ phiên bản 20260402

code, res_headers_json = http.head{
url = URL;
timeout = timeout_secs;
headers = headers;
params = query_params;
progress = progress_callback;
progress_interval_ms = progress_interval_ms;
}

Tham số

  • URL
    Kiểu chuỗi. URL yêu cầu. Hàm mặc định escape URL; xem url_no_escape nếu không muốn xử lý này.
  • timeout_secs
    Kiểu số, không bắt buộc. Thời gian chờ tính bằng giây. Mặc định: 10.
  • headers
    Kiểu bảng, không bắt buộc. Header yêu cầu có dạng { field1 = value1, ... }. Mặc định: {}.
  • query_params
    Kiểu bảng, không bắt buộc. Tham số chuỗi truy vấn có dạng { field1 = value1, ... }. Mặc định: {}.
  • progress_callback
    Kiểu hàm, không bắt buộc. Hỗ trợ từ phiên bản 20260402. Được gọi khi tiến trình yêu cầu thay đổi; đối số đầu tiên là thông tin tiến trình hiện tại.
  • progress_interval_ms
    Kiểu số nguyên, không bắt buộc. Hỗ trợ từ phiên bản 20260402. Khoảng thời gian giữa các lần gọi lại tiến trình, tính bằng mili giây.
  • url_no_escape
    Kiểu boolean, không bắt buộc. true = không escape URL. Mặc định: false.
    Để tự escape, hãy xem mô-đun lcurl, easy:escapeeasy:unescape.

Giá trị trả về

  • code
    Kiểu số nguyên. Mã trạng thái HTTP; trả về -1 khi hết thời gian chờ.
  • res_headers_json
    Kiểu chuỗi hoặc nil. Header phản hồi ở định dạng JSON; trả về nil khi hết thời gian chờ.

Mô tả

Dùng phương thức HEAD của HTTP/1.1 để lấy header phản hồi.
HEAD thường trả về cùng header với GET nhưng không có nội dung phản hồi.
Hàm này có thể nhường quyền thực thi; các luồng khác có thể được chạy trước khi hàm trả về.

Bảng info được truyền cho hàm gọi lại tiến trình có cấu trúc như sau:

{
count_of_bytes_sent = bytes_sent;
count_of_bytes_expected_to_send = bytes_expected_to_send;
count_of_bytes_received = bytes_received;
count_of_bytes_expected_to_receive = bytes_expected_to_receive;
}

Ví dụ

local c, h = http.head("https://www.xxtouch.app/测试文本.txt")
if c==200 then
sys.alert(h)
end

Lưu ý: Ví dụ trên sử dụng hàm ngoài chương này sys.alert.