跳到主要内容

Request():delete()

执行 DELETE 请求并返回一个 Response 对象。此方法用于从服务器删除资源。

签名

delete(): Response

返回值

Response - 包含服务器响应的响应对象

描述

delete() 方法向创建 Request 对象时指定的 URL 发送 HTTP DELETE 请求。DELETE 请求通常用于从服务器移除现有资源,例如删除用户、文章或任何其他数据实体。

示例

基本 DELETE 请求

-- 删除 ID123 的用户
local response = Request("https://api.example.com/users/123"):delete()

带身份认证的 DELETE 请求

-- 带授权信息删除一篇文章
local response = Request("https://api.example.com/posts/456")
:setHeader("Authorization", "Bearer your-token-here")
:setHeader("Accept", "application/json")
:delete()

处理 DELETE 响应

-- 删除一条评论并处理响应
local response = Request("https://api.example.com/comments/789")
:setHeader("Authorization", "Bearer your-token-here")
:delete()

local data = response:getData()
local statusCode = response:getResponseCode()

if statusCode == 204 then
print("Comment deleted successfully! (No content)")
elseif statusCode == 200 then
print("Comment deleted successfully!")
print("Response: " .. data)
else
print("Failed to delete comment. Status: " .. statusCode)
end

带附加请求头的 DELETE

-- 带自定义请求头删除资源
local response = Request("https://api.example.com/files/document.pdf")
:setHeader("Authorization", "Bearer token123")
:setHeader("X-Delete-Reason", "User requested deletion")
:setHeader("Accept", "application/json")
:delete()

local status = response:getResponseCode()
if status == 200 or status == 204 then
print("File deleted successfully")
else
print("Delete failed with status: " .. status)
end

条件性删除

-- 仅当资源未被修改时才删除
local response = Request("https://api.example.com/data/123")
:setHeader("If-Match", "etag-value-here")
:setHeader("Authorization", "Bearer token")
:delete()

local status = response:getResponseCode()
if status == 412 then
print("Delete failed: Resource has been modified")
elseif status == 200 or status == 204 then
print("Resource deleted successfully")
end

说明

  • DELETE 请求通常不包含请求体
  • 成功的 DELETE 操作通常返回:
    • 200 OK,响应体描述删除情况
    • 202 Accepted,如果删除以异步方式处理
    • 204 No Content,如果删除成功且无响应体
  • 该方法返回一个 Response 对象,您可以通过它访问响应数据和状态码
  • 请始终检查响应状态码,以确保请求成功
  • DELETE 请求是幂等的——多次发起相同的请求应产生相同的效果(资源已被删除)
  • 使用 DELETE 请求时请谨慎,因为它们会永久移除数据