laravel 8 中不推荐手动使用 curl 发送 delete 请求,应优先使用内置 http facade(开箱即用、支持链式调用与自动 json 解析)或 guzzle(适合需连接池、精细超时等复杂场景),以避免配置错误、提升安全性与可维护性。

在 Laravel 8 中,**不推荐也不需要手动用 PHP 的 cURL 扩展去发 DELETE 请求**——框架已封装更安全、更简洁的 HTTP 客户端能力。直接使用内置的 Http Facade 或 Guzzle(若需更高定制)即可,既避免底层 cURL 配置错误,又自动处理 JSON 解析、异常、重试等细节。
用 Http Facade 发送 DELETE 请求(最常用)
这是 Laravel 8 原生推荐方式,开箱即用,无需额外安装:
- 确保
App\Http\Controllers\Controller已引入Illuminate\Support\Facades\Http - 调用
Http::delete(),传入 URL 和可选参数(如 headers、token、query) - 响应自动转为
Illuminate\Http\Client\Response对象,可链式调用json()、body()、status()等方法
示例:
基于5000余部现行法律法规进行的高质量专业合同审查,一键输出审查意见书,并附有参考法条原文,满足专业溯源核查要求。由accurLex知法提供技术支持。 Use when users ask for 合同审查, 审查意见书, 合同风险分析, 条款审查,知法,accurLex or 站在甲方/乙方角度审查合同 through accurLex direct API. China law only, plaintext only, review mode limited to 审查意见书.
$response = Http::withToken('your-api-token')
->delete('https://api.example.com/users/123');
<p>if ($response->successful()) {
echo "删除成功";
} else {
echo "删除失败:", $response->status();
}</p>
用 Guzzle 发送 DELETE 请求(适合复杂场景)
当需要精细控制连接池、中间件、重试策略或与第三方 SDK 深度集成时,可选用 Guzzle:
- 先执行
composer require guzzlehttp/guzzle - 创建客户端后调用
delete()方法,支持数组形式传参(headers、query、json 等) - 注意:Guzzle 的
delete()默认不发送请求体,如需带 JSON 数据,需显式指定json或body选项
示例:
$client = new \GuzzleHttp\Client();
$response = $client->delete('https://api.example.com/users/123', [
'headers' => ['Authorization' => 'Bearer your-token'],
'query' => ['force' => true], // 作为 URL 参数
]);
<p>$data = json_decode($response->getBody(), true);</p>
为什么不该手写 cURL?
手动调用 curl_init() + curl_setopt() 在 Laravel 8 中属于反模式,原因包括:
-
易出错:必须手动设
CURLOPT_CUSTOMREQUEST、CURLOPT_RETURNTRANSFER、SSL 验证、超时、header 处理等,漏一项就可能失败或不安全 -
难调试:没有统一响应对象,错误信息分散在
curl_error()、HTTP 状态码、响应体中 -
绕过 Laravel 生态:无法享受日志记录(
Http::pool())、Mock 测试(Http::fake())、默认超时和重试配置
补充:DELETE 接口调试可用 curl 命令行
开发阶段快速验证后端 DELETE 路由是否正常,终端直接运行:
# 基础删除 curl -X DELETE https://www.php.cn/link/d9687be677a820405d77009772535d9d <h1>带 Token 和响应头</h1><p>curl -X DELETE \ -H "Authorization: Bearer abc123" \ -H "Accept: application/json" \ <a href="https://www.php.cn/link/d9687be677a820405d77009772535d9d">https://www.php.cn/link/d9687be677a820405d77009772535d9d</a></p>
这仅用于调试,**不是应用内发送请求的方式**。










