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

PHP中向NGROK服务器发送请求返回NULL的问题求助

解决PHP Curl请求Ngrok返回NULL的问题

首先,你的代码缺少错误捕获逻辑,先添加调试代码定位具体问题:

$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30, // 建议设置合理超时,避免无限等待
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'GET',
));

$response = curl_exec($curl);

// 添加错误调试逻辑
if(curl_errno($curl)){
    var_dump(curl_error($curl));
}

curl_close($curl);
return $response;

根据Ngrok请求失败的常见场景,尝试以下针对性解决方案:

  • SSL证书验证问题
    Ngrok使用HTTPS协议,若服务器未信任其根证书,Curl会静默失败返回NULL。临时解决可添加以下选项(仅开发环境使用,生产环境建议配置正确的CA证书):
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => 0,
  • 缺失User-Agent被拦截
    部分Ngrok端点会拦截无User-Agent的请求,添加浏览器风格的User-Agent:
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
  • 服务器出站限制
    检查服务器防火墙、安全组是否允许访问Ngrok的域名和端口(默认443/80),部分主机商可能屏蔽Ngrok的出站请求,需联系服务商确认。

  • TLS版本兼容性问题
    旧版本Curl可能不支持Ngrok使用的TLS 1.2/1.3,强制指定TLS版本:

CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_2,

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 16:46:14