You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中无法获取CURL请求响应体问题求助

问题排查与解决方案

核心问题分析

你的PHP cURL请求返回404,但Postman请求正常,大概率是请求头差异导致服务器识别请求为无效请求。Postman会自动添加一些标准请求头(如User-Agent),而PHP cURL默认的请求头可能不符合服务器的校验规则。

解决步骤与修改代码

1. 开启cURL错误排查并修正请求配置

先添加错误检测逻辑,同时补充Postman默认携带的请求头,修改后的代码如下:

<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://api-dev.meucliente.app.br/api/Login/sistema/forgot-pin?mailto=teste@verificando.com.br');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
// 关闭响应头与响应体的合并,单独获取响应体
curl_setopt($curl, CURLOPT_HEADER, false);
// 模拟Postman的User-Agent标识
curl_setopt($curl, CURLOPT_USERAGENT, 'PostmanRuntime/7.29.0');
// 自动跟随服务器的3xx重定向
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);

$resposta = curl_exec($curl);

// 排查cURL连接层面的错误
if(curl_errno($curl)){
    echo 'cURL错误:' . curl_error($curl);
}
curl_close($curl);

header('Content-Type: application/json');
var_dump($resposta);
?>

2. 关键修改点说明

  • 补充User-Agent头:多数服务器会校验请求的客户端标识,拒绝无标识或不符合规范的请求,模拟Postman的UA可以规避这类校验。
  • 关闭CURLOPT_HEADER:原代码中该参数设为true,会将HTTP响应头和响应体合并返回,不利于查看真实的响应内容;关闭后仅返回接口响应体。
  • 开启重定向跟随:如果服务器存在3xx跳转,cURL默认不会自动跟随,添加该参数可确保请求最终到达正确的端点。

3. 极端情况处理:完全复刻Postman请求头

如果上述修改仍无效,可在Postman中点击「Code」按钮选择「cURL」,复制完整的cURL命令,提取其中的所有请求头,通过CURLOPT_HTTPHEADER参数添加到PHP代码中。示例:

curl_setopt($curl, CURLOPT_HTTPHEADER, [
    'Accept: */*',
    'Cache-Control: no-cache',
    'Host: api-dev.meucliente.app.br'
]);

预期验证结果

修改后重新运行脚本,应该能得到与Postman一致的响应:

[
    {
        "Mensagem": "Email não foi encontrado!!",
        "InnerException": null
    }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 18:20:26