Request():delete()
执行 DELETE 请求并返回一个 Response 对象。此方法用于从服务器删除资源。
签名
delete(): Response
返回值
Response - 包含服务器响应的响应对象
描述
delete() 方法向创建 Request 对象时指定的 URL 发送 HTTP DELETE 请求。DELETE 请求通常用于从服务器移除现有资源,例如删除用户、文章或任何其他数据实体。
示例
基本 DELETE 请求
-- 删除 ID 为 123 的用户
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 请求时请谨慎,因为它们会永久移除数据