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

CoinMarketCap widget接口请求无响应返回403错误1020如何解决?

问题原因

  • 你收到的403 error code:1020是Cloudflare服务的专属拦截错误,代表当前请求被站点的Web应用防火墙(WAF)判定为异常爬虫请求,直接拒绝访问。
  • 浏览器可以正常访问的原因是浏览器发起请求时会自动携带User-Agent、Accept、Accept-Language等一系列符合正常用户访问特征的请求头,通过了Cloudflare的校验规则,而你当前的代码请求只配置了极少的头参数,没有模拟浏览器特征,所以被拦截。

修复方案

修改请求配置,补充模拟真实浏览器的请求头即可,参考修改后的代码:

'use strict';

const rp = require('request-promise');
const requestOptions = {
  method: 'GET',
  uri: 'https://3rdparty-apis.coinmarketcap.com/v1/cryptocurrency/widget?id=3501&convert=BTC,ETH,USD',
  headers: {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 13_5; rv:109.0) Gecko/20100101 Firefox/116.0',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
    'Accept-Encoding': 'gzip, deflate, br',
    'Connection': 'keep-alive'
  },
  json: true,
  gzip: true
};

rp(requestOptions).then(response => {
  console.log('API Call response:', response["data"]["3501"]["quote"]);
}).catch((err) => {
  console.log('API Call error:', err.message);
});

注:原代码中不需要额外做JSON.parse,配置json:true后request-promise会自动解析返回的JSON数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:39:02