cURL 全称为「Client for URLs」,为开发人员提供了一套全面的管理数据传输的功能。主要以两种模式运行:
- 用于基本交互的面向用户的命令行界面
- 专为软件开发项目中无缝集成而设计的强大库
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 请求的注意事项
- 多次发送相同的 DELETE 请求应该具有相同的效果(即删除一次资源)。
- 即使有成功的响应代码,由于服务器实施或策略的原因,实际删除也可能不会马上发生。
- 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;
}
?>
代码解读:
- 定义 DELETE 请求的目标 URL。
curl_init($url)
初始化 cURL 句柄。curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE")
将请求方法设置为“DELETE”。curl_setopt($ch, CURLOPT_RETURNTRANSFER, true)
确保响应被捕获为字符串。$response = curl_exec($ch)
执行 DELETE 请求并存储响应。$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE)
检索 HTTP 响应代码。- 用
curl_close($ch)
关闭 cURL 句柄。 - 检查响应代码,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)
?>
代码解读:
- 定义 URL 和身份验证凭据。
- 代码结构遵循前面的示例,并添加了用于身份验证的行。
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 中进行所需的修改! 对于官方文档,可以查看:
用 Apifox 轻松使用 cURL 文件
如果需要更高效 API 开发的精细解决方案,可以考虑尝试 Apifox,一个一体化 API 开发平台,为开发人员提供整个 API 生命周期所需的所有工具。
让我们看看如何将 cURL 命令导入 Apifox!
快速将 cURL 命令导入 Apifox
要将 cURL 命令导入 Apifox,首先在项目中,单击 Apifox 窗口左上角的紫色 +
按钮,然后选择 导入 cURL
。
将 cURL 命令复制并粘贴到上显示的框中。
导入成功的话,就能够以 API 请求的形式查看 cURL 命令。
使用 Apifox 生成 PHP 代码
如果之前没有使用 PHP 编程语言进行编码的经验,也不要担心,Apifox 具有值得信赖的代码生成功能,提供多种其他编程语言的代码框架。
找到 API 请求上的 </> 生成代码
按钮,然后在下拉列表中选择 生成接口请求代码
。
接着在弹出的窗口中选择「PHP」,默认显示 cURL 部分,应该看到为 cURL 生成的代码。我们只需要将其复制并粘贴到 IDE(集成开发环境)就可以继续开发应用程序。
总结
cURL 中的curl_init() 函数使开发人员能够以编程方式删除数据。curl_init() 函数还可以发送 PUT 请求、POST 请求、GET 请求。通过制作 DELETE 请求,可以直接从应用程序内删除远程服务器上的资源。事实证明,此功能对于管理数据生命周期、跨系统同步信息以及确保遵守数据治理法规非常有价值。
cURL 在制作 DELETE 请求方面提供了多功能性,从基本操作到需要身份验证或复杂数据负载的操作,该库提供了必要的工具。通过利用 cURL 的功能,开发人员可以在其软件解决方案中实现对数据删除的精确控制。