You need to enable JavaScript to run this app. 如何通过PHP的curl_exec实现带自定义请求头的JSON POST请求
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PHP的curl_exec实现带自定义请求头的JSON POST请求

可直接运行的PHP cURL实现代码
<?php
// 目标接口地址,和原curl命令的请求地址保持一致
$apiUrl = 'https://api.mydomain.in/api/comm/wa/send/text';

// 构造请求参数,和原--data-raw里的参数完全对应
$requestParams = [
    'phone' => '8822992929',
    'ID' => 26,
    'text' => 'Dear Customer. Thank you for your purchase. '
];

// 转换为标准JSON字符串,匹配Content-Type要求
$jsonPayload = json_encode($requestParams, JSON_UNESCAPED_UNICODE);

// 初始化cURL会话
$ch = curl_init($apiUrl);

// 批量配置cURL参数
curl_setopt_array($ch, [
    // 标记为POST请求,对应原命令的--request POST
    CURLOPT_POST => true,
    // 将接口返回内容作为函数返回值,不直接输出到页面
    CURLOPT_RETURNTRANSFER => true,
    // 传入POST请求体,对应原命令的--data-raw
    CURLOPT_POSTFIELDS => $jsonPayload,
    // 传入自定义请求头,对应原命令的--header配置
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'token: xyz123456'
    ],
    // 自动跟随重定向,对应原命令的--location参数
    CURLOPT_FOLLOWLOCATION => true,
    // 通用超时配置,避免脚本无意义阻塞
    CURLOPT_TIMEOUT => 10,
    CURLOPT_CONNECTTIMEOUT => 5
]);

// 执行请求
$response = curl_exec($ch);
// 获取cURL执行阶段的错误信息
$errorMsg = curl_error($ch);
// 获取接口返回的HTTP状态码
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// 关闭cURL会话释放资源
curl_close($ch);

// 结果处理
if ($errorMsg) {
    echo "请求执行失败:" . $errorMsg;
} else {
    echo "接口响应状态码:" . $httpCode . "<br>";
    echo "接口返回内容:" . $response;
}
?>
原curl命令与PHP cURL配置的对应说明
  • 原命令的目标URL:直接作为curl_init()的入参即可,保持和原地址完全一致
  • 原命令的--location参数:对应配置项CURLOPT_FOLLOWLOCATION = true,作用是自动跟随接口返回的301/302重定向,和原命令的行为完全对齐
  • 原命令的--request POST声明:对应配置项CURLOPT_POST = true,标记本次请求为POST方法
  • 原命令的--header请求头:所有自定义头需要组成字符串数组,传入CURLOPT_HTTPHEADER配置项,这里要注意头内容一字不差,不要随意修改大小写、冒号后的空格,否则可能被接口鉴权拒绝
  • 原命令的--data-raw请求体:不要直接把PHP数组传给CURLOPT_POSTFIELDS,否则PHP会自动把请求格式改成multipart/form-data,和接口要求的application/json格式不匹配,必然导致请求失败。正确做法是将参数数组通过json_encode()转成标准JSON字符串后,再赋值给该配置项,同时建议加上JSON_UNESCAPED_UNICODE参数,避免未来传入中文时出现转义异常。

调试小技巧:可以在请求执行后打印$httpCode和$response,直接定位是请求格式错了、鉴权失败还是接口业务逻辑报错。


内容的提问来源于stack exchange,提问作者charak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.24 07:54:07