如何使用curl_init()发送DELETE请求

cURL 库中的curl_init() 函数可以通过从服务器中删除资源来以编程方式促进 HTTP DELETE 请求的传输。

用 Apifox,节省研发团队的每一分钟

如何使用curl_init()发送DELETE请求

免费使用 Apifox

相关推荐

最新文章

API

一体化协作平台

API 设计

API 文档

API 调试

自动化测试

API Mock

API Hub

立即体验 Apifox
目录

cURL 全称为「Client for URLs」,为开发人员提供了一套全面的管理数据传输的功能。主要以两种模式运行:

  • 用于基本交互的面向用户的命令行界面
  • 专为软件开发项目中无缝集成而设计的强大库
🦊
使用 Apifox 简化 cURL API 设计和测试,适用于整个 API 生命周期的综合 API 开发工具。借助 Apifox 可以在单个应用程序中构建、调试、模拟和记录 cURL API!
Apifox - API 文档、调试、Mock、测试一体化协作平台。拥有接口文档管理、接口调试、Mock、自动化测试等功能,接口开发、测试、联调效率,提升 10 倍。最好用的接口文档管理工具,接口自动化测试工具。
Apifox = Postman + Swagger + Mock + JMeter。集接口文档工具、接口Mock工具、接口自动化测试工具、接口调试工具于一体,提升 10 倍研发效率。是最好用的API文档工具,API自动化测试工具,API Mock工具,接口文档管理工具,接口文档生成工具。

curl_init()的定义

根据 PHP 官方网站,curl_init 函数初始化一个 cURL 会话,并返回一个 cURL 句柄,以便与 curl_setopt()、curl_exec() 和 curl_close() 函数一起使用。

涉及参数

URL

如果提供 URL, CURLOPT_URL 选项将设置为其值,还可以使用 curl_setopt()函数手动设置此选项。

但如果设置了 open_basedir ,则 cURL 本身会禁用 file 协议。

返回值

如果成功,curl_init() 函数会返回一个 cURL 句柄,如果出现错误,则返回 false

什么是 DELETE 请求?

在 Web 环境中,DELETE 请求是使用 HTTP 发送到服务器的特定指令,指示服务器移除或删除指定的资源,可以是文件、数据库条目或服务器管理的任何其他数据。

DELETE 请求如何工作?

以下是 DELETE 请求如何工作的详细说明:

第 1 步:发起请求

客户端(例如 Web 浏览器或软件应用程序)将 DELETE 请求发送到服务器。

第 2 步:指定资源

请求包含一个统一资源标识符 (URI),精确指出服务器上应删除的确切资源。

第 3 步:服务器操作

收到 DELETE 请求后,服务器会对其进行处理,如果成功,则删除指定的资源。

第 4 步:返回响应

服务器将响应代码发送回客户端,指示删除尝试的结果。常见的成功代码包括 200(正常)、202(已接受)和 204(无内容)。

关于 DELETE 请求的注意事项

  1. 多次发送相同的 DELETE 请求应该具有相同的效果(即删除一次资源)。
  2. 即使有成功的响应代码,由于服务器实施或策略的原因,实际删除也可能不会马上发生。
  3. DELETE 请求通常会导致资源的永久删除。

curl_init() DELETE 请求的代码示例

示例 1:基本 DELETE 请求

<?php

$url = "https://api.example.com/resources/123"; // Replace with the actual URL

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");  // Set request method to DELETE
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    // Capture response

$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch);

if ($http_code == 200) {
  echo "Resource deleted successfully!";
} else {
  echo "Error deleting resource: " . $http_code;
}

?>

代码解读:

  1. 定义 DELETE 请求的目标 URL。
  2. curl_init($url) 初始化 cURL 句柄。
  3. curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE") 将请求方法设置为“DELETE”。
  4. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) 确保响应被捕获为字符串。
  5. $response = curl_exec($ch) 执行 DELETE 请求并存储响应。
  6. $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE) 检索 HTTP 响应代码。
  7. curl_close($ch) 关闭 cURL 句柄。
  8. 检查响应代码,200表示删除成功。

示例2:带身份验证的 DELETE 请求

<?php

$url = "https://api.example.com/protected/resources/456"; // Replace with URL
$username = "your_username";
$password = "your_password";

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);  // Set credentials

$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch);

// ... (check response code and handle accordingly)

?>

代码解读:

  1. 定义 URL 和身份验证凭据。
  2. 代码结构遵循前面的示例,并添加了用于身份验证的行。
  3. curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password) 设置基本身份验证的用户名和密码。

示例3:带有 JSON 负载的 DELETE 请求 (Python)

发送带有自定义标头的 POST 请求并遵循重定向:

import json
import curl

url = "https://api.example.com/data"
data = {"id": 789}  # Replace with your data

headers = {"Content-Type": "application/json"}

response = curl.easy.request(
    url,
    custom_request="DELETE",
    data=json.dumps(data).encode("utf-8"),  # Encode data as JSON bytes
    headers=headers
)

if response.status_code == 200:
    print("Resource deleted successfully!")
else:
    print(f"Error deleting resource: {response.status_code}")

代码解读:

1.导入必要的库并定义 URL 和数据对象。

2.设置 Content-Type 标头来指示 JSON 数据。

3.curl.easy.request 使用参数执行请求:

  • url :目标网址
  • custom_request :设置为“删除”
  • data :编码为字节的 JSON 数据
  • headers :包含 Content-Type 标头的字典

4. 检查响应状态代码是否成功(200)。

注意事项

上面的代码示例不能直接复制粘贴到 IDE 中,因为这是经过简化的版本,需要进一步修改才能满足实际的应用程序使用需求。

自的 IDE 中进行所需的修改! 对于官方文档,可以查看:

PHP: cURL - Manual

用 Apifox 轻松使用 cURL 文件

如果需要更高效 API 开发的精细解决方案,可以考虑尝试 Apifox,一个一体化 API 开发平台,为开发人员提供整个 API 生命周期所需的所有工具。

用 Apifox 轻松使用 cURL 文件

让我们看看如何将 cURL 命令导入 Apifox!

快速将 cURL 命令导入 Apifox

要将 cURL 命令导入 Apifox,首先在项目中,单击 Apifox 窗口左上角的紫色 + 按钮,然后选择 导入 cURL

curl_init() 的定义

将 cURL 命令复制并粘贴到上显示的框中。

快速将 cURL 命令导入 Apifox

导入成功的话,就能够以 API 请求的形式查看 cURL 命令。

以 API 请求的形式查看 cURL 命令

使用 Apifox 生成 PHP 代码

如果之前没有使用 PHP 编程语言进行编码的经验,也不要担心,Apifox 具有值得信赖的代码生成功能,提供多种其他编程语言的代码框架。

找到 API 请求上的 </> 生成代码 按钮,然后在下拉列表中选择 生成接口请求代码

使用 Apifox 生成 PHP 代码

接着在弹出的窗口中选择「PHP」,默认显示 cURL 部分,应该看到为 cURL 生成的代码。我们只需要将其复制并粘贴到 IDE(集成开发环境)就可以继续开发应用程序。

 cURL复制并粘贴到 IDE

总结

cURL 中的curl_init() 函数使开发人员能够以编程方式删除数据。curl_init() 函数还可以发送 PUT 请求POST 请求GET 请求。通过制作 DELETE 请求,可以直接从应用程序内删除远程服务器上的资源。事实证明,此功能对于管理数据生命周期、跨系统同步信息以及确保遵守数据治理法规非常有价值。

cURL 在制作 DELETE 请求方面提供了多功能性,从基本操作到需要身份验证或复杂数据负载的操作,该库提供了必要的工具。通过利用 cURL 的功能,开发人员可以在其软件解决方案中实现对数据删除的精确控制。