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

PHP Curl GET请求返回NULL,求助解决方法

解决PHP Curl调用Coinroom API的问题

嘿,我知道你之前写过简单的PHP Curl请求能成功,但这次调用coinroom的API卡壳了对吧?先看看你代码里的几个明显问题,再给你修正后的完整方案:

你代码里的核心问题

  • 变量名不统一:你初始化的Curl会话变量是$cSession,但后面设置参数时用了$ch——这个未定义的变量会直接导致请求失败
  • 缺少关键Curl选项:比如没有设置返回响应内容的选项,也没处理SSL证书验证的问题,这些都是调用HTTPS API时常见的坑
  • 代码未完成:你贴的代码到CURLOPT_CUSTO...就断了,肯定缺少后续的执行和关闭会话的逻辑

修正后的完整代码

<?php
// 设置目标API地址
$url = "https://coinroom.com/api/availableCurrencies";

// 定义请求头,明确要求JSON格式响应
$headers = array(
    'Accept: application/json',
    'Content-Type: application/json'
);

// 初始化Curl会话
$cSession = curl_init();

// 配置Curl核心参数
curl_setopt($cSession, CURLOPT_URL, $url);
curl_setopt($cSession, CURLOPT_HTTPHEADER, $headers);
// 让Curl将响应返回给变量,而非直接输出
curl_setopt($cSession, CURLOPT_RETURNTRANSFER, true);
// 临时关闭SSL证书验证(开发环境可用,生产环境建议配置根证书后开启)
curl_setopt($cSession, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($cSession, CURLOPT_SSL_VERIFYHOST, false);

// 执行请求并获取响应
$response = curl_exec($cSession);

// 检查请求是否出现错误
if (curl_errno($cSession)) {
    echo 'Curl请求错误: ' . curl_error($cSession);
} else {
    // 将JSON响应解析为关联数组
    $currencyData = json_decode($response, true);
    // 输出获取到的币种数据
    print_r($currencyData);
}

// 关闭Curl会话,释放资源
curl_close($cSession);
?>

关键细节说明

  • 变量一致性:全程使用同一个会话变量$cSession,避免未定义变量的致命错误
  • 返回响应控制:CURLOPT_RETURNTRANSFER是必须的,否则Curl会直接把响应打印到页面,你没法后续处理数据
  • SSL证书处理:如果你的服务器没有配置正确的SSL根证书,关闭CURLOPT_SSL_VERIFYPEER和CURLOPT_SSL_VERIFYHOST能快速解决连接失败的问题,但生产环境强烈建议开启,并通过CURLOPT_CAINFO指定根证书文件路径
  • 错误排查:加入curl_errno和curl_error能帮你快速定位请求失败的原因,比如网络问题、API限制等
  • JSON解析:用json_decode($response, true)把API返回的JSON字符串转成PHP数组,方便你提取需要的币种信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:29:32