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

如何同时发起多个CoinMarketCap API调用以降低信用点消耗

CoinMarketCap多接口并发调用方案

通过PHP内置的curl_multi系列函数可实现多接口并行请求,无需串行等待单个请求完成即可同时发起所有目标接口调用。

注意事项

  • 并发请求仅减少请求耗时,不会抵扣接口本身的credit消耗:你列出的4个接口单次调用总消耗为 1+1+25+1=28 credit,请根据你的套餐额度调整调用频率
  • /v2/cryptocurrency/info 接口必须传入id或symbol参数指定要查询的币种,否则会返回错误

完整实现代码

// 替换为你自己的CMC API Key
const CMC_API_KEY = '*********-****-****-****-***********';
$headers = [
    'Accepts: application/json',
    'X-CMC_PRO_API_KEY: ' . CMC_API_KEY
];

// 定义所有需要请求的接口配置
$requests = [
    // 1. 热门趋势币种接口
    [
        'url' => 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/trending/latest',
        'params' => []
    ],
    // 2. 涨跌榜接口
    [
        'url' => 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/trending/gainers-losers',
        'params' => []
    ],
    // 3. 全币种列表5000条
    [
        'url' => 'https://pro-api.coinmarketcap.com/cryptocurrency/listings/latest',
        'params' => [
            'start' => '1',
            'limit' => '5000',
            'convert' => 'USD'
        ]
    ],
    // 4. 币种详情接口 示例查BTC、ETH,按需替换
    [
        'url' => 'https://pro-api.coinmarketcap.com/v2/cryptocurrency/info',
        'params' => [
            'symbol' => 'BTC,ETH'
        ]
    ]
];

// 初始化多句柄
$mh = curl_multi_init();
$curlHandles = [];

// 批量初始化单个curl请求
foreach ($requests as $index => $req) {
    $qs = http_build_query($req['params']);
    $requestUrl = $req['url'] . ($qs ? '?' . $qs : '');
    
    $ch = curl_init();
    curl_setopt_array($ch, [
        CURLOPT_URL => $requestUrl,
        CURLOPT_HTTPHEADER => $headers,
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_SSL_VERIFYPEER => false // 本地调试可开启,生产环境建议关闭
    ]);
    
    curl_multi_add_handle($mh, $ch);
    $curlHandles[$index] = $ch;
}

// 执行所有并发请求
$running = null;
do {
    $status = curl_multi_exec($mh, $running);
} while ($status === CURLM_CALL_MULTI_PERFORM || $running);

// 逐个获取响应结果
$responses = [];
foreach ($curlHandles as $index => $ch) {
    $responses[$index] = json_decode(curl_multi_getcontent($ch), true);
    curl_multi_remove_handle($mh, $ch);
    curl_close($ch);
}
curl_multi_close($mh);

// 输出结果按需处理
print_r($responses);

上述代码会同时发起4个接口请求,所有请求完成后统一返回结果数组,数组顺序和你定义的接口顺序一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:15:03