본문으로 건너뛰기

DELETE 요청 보내기 (http.delete)

선언

HTTP 상태 코드, 응답 헤더 JSON 텍스트, 응답 본문 = http.delete(URL [, 제한 시간(), 요청 헤더, 요청 본문 데이터, URL ESCAPE 안 함 ])

선언(이름 있는 인수)

20250625부터 지원하며, 진행률 인수는 20260402 이후 버전에서 지원합니다.

HTTP 상태 코드, 응답 헤더 JSON 텍스트, 응답 본문 = http.delete{
url = URL;
timeout = 제한 시간();
headers = 요청 헤더;
params = Query 인수;

-- 아래 요청 본문 인수는 함께 사용할 수 없으며 우선순위는 multipart > data > json > upload_file입니다
multipart = 요청 본문 multipart 폼;
data = 요청 본문 데이터;
json = 요청 본문 JSON;
upload_file = 요청 본문 업로드 파일 경로;

download_file = 성공한 요청의 응답 본문을 저장할 파일 경로;
progress = 진행률 콜백 함수;
progress_interval_ms = 진행률 콜백 간격(밀리초);
}

매개변수

  • URL
    문자열. 요청할 URL 주소입니다. 이 메서드는 기본적으로 URL을 escape 처리합니다. 필요하지 않으면 URL ESCAPE 안 함 인수 설명을 참조하십시오.
  • 제한 시간(초)
    실수, 선택 사항. 요청 제한 시간이며 단위는 초, 기본값은 10입니다.
  • 요청 헤더
    테이블, 선택 사항. 전송할 요청의 헤더 정보이며 형식은 {field1 = value1, field2 = value2, ...}, 기본값은 {}입니다.
  • Query 인수
    테이블, 선택 사항. 전송할 요청의 Query 인수이며 형식은 {field1 = value1, field2 = value2, ...}, 기본값은 {}입니다.
  • 요청 본문 데이터
    문자열, 선택 사항. DELETE로 전송할 내용이며 기본값은 빈 문자열입니다.
    20250625 테이블이면 application/x-www-form-urlencoded 방식으로 인코딩하여 전송합니다.
  • 요청 본문 multipart 폼
    테이블, 선택 사항. DELETE로 전송할 multipart 폼 데이터이며 형식은 {field1 = value1, field2 = value2, ...}, 기본값은 {}입니다.
  • 요청 본문 JSON
    테이블, 선택 사항. application/json 방식으로 인코딩하여 전송합니다.
  • 요청 본문 업로드 파일 경로
    문자열, 선택 사항. 파일 데이터를 요청 본문으로 직접 전송합니다.
  • 성공한 요청의 응답 본문을 저장할 파일 경로
    문자열, 선택 사항. 이 인수가 있으면 요청에 성공한 뒤 응답 본문으로 저장된 파일 경로를 반환합니다.
  • 진행률 콜백 함수
    함수, 선택 사항. 20260402 이후 버전에서 지원합니다. 요청 업로드 또는 다운로드 진행률이 바뀔 때 호출되며 콜백 함수의 첫 번째 인수는 현재 진행률 정보입니다.
  • 진행률 콜백 간격(밀리초)
    정수, 선택 사항. 20260402 이후 버전에서 지원합니다. 진행률 콜백의 호출 간격을 밀리초 단위로 제어합니다.
  • URL ESCAPE 안 함
    불리언, 선택 사항. true이면 URL을 escape하지 않고 바로 요청합니다. 기본값은 false입니다.
    URL을 직접 escape하는 방법은 lcurl 모듈easy:escapeeasy:unescape를 참조하십시오.

반환값

  • HTTP 상태 코드
    정수. 이번 요청의 http 상태 코드를 반환하며 요청 시간이 초과되면 -1을 반환합니다.
  • 응답 헤더 JSON 텍스트
    문자열 또는 nil. 요청이 완료되면 JSON 형식의 헤더 정보를 반환하며 요청 시간이 초과되면 nil을 반환합니다.
  • 응답 본문
    문자열 또는 nil. 요청이 완료되면 응답 내용을 반환합니다. 응답 본문을 파일에 저장했다면 이 값은 파일 경로이며, 요청 시간이 초과되면 nil을 반환합니다.

설명

HTTP/1.1 프로토콜의 DELETE 메서드로 네트워크 리소스를 요청합니다. 일반적으로 네트워크 리소스를 삭제하는 데 사용하며 권한 검증이 수반되는 경우가 많습니다.
이 함수는 실행을 양보할 수 있으며, 반환되기 전에 다른 스레드가 실행 기회를 얻을 수 있습니다.

진행률 콜백 함수가 받는 info 구조는 다음과 같습니다.

{
count_of_bytes_sent = 전송한 바이트 수;
count_of_bytes_expected_to_send = 전송 예정 바이트 수;
count_of_bytes_received = 수신한 바이트 수;
count_of_bytes_expected_to_receive = 수신 예정 바이트 수;
}

예제

local code, res_headers, body = http.delete("https://httpbin.org/delete?hello=world&你好=世界", 15, {
["User-Agent"] = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)", -- IE8 요청 시뮬레이션
["Cookie"] = "a=1; b=2; c=3"; -- Cookie도 함께 제출
}, "需要发送过去的数据")
if code == 200 then -- 반환된 상태 코드가 HTTP_OK이면
sys.alert(body)
end

참고: 위 코드에서는 이 장에서 설명하지 않는 함수인 sys.alert를 사용합니다.

예제(이름 있는 인수)

local code, res_headers, body = http.delete{
url = "https://httpbin.org/delete";
timeout = 15;
headers = {
["User-Agent"] = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)"; -- IE8 요청 시뮬레이션
["Cookie"] = "a=1; b=2; c=3"; -- Cookie도 함께 제출
};
params = {
["hello"] = "world";
["你好"] = "世界";
};
data = "需要发送过去的数据";
}
if code == 200 then -- 반환된 상태 코드가 HTTP_OK이면
sys.alert(body)
end

참고: 위 코드에서는 이 장에서 설명하지 않는 함수인 sys.alert를 사용합니다.