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

调用CoinGecko价格图表API遇JS/Cookie启用错误,Postman与Flutter如何处理?

解决CoinGecko价格图表API调用的"Enable JavaScript and cookies to continue"错误

问题原因

CoinGecko近期对非浏览器的API请求增加了反爬检测,会验证请求是否来自真实浏览器(通过请求头、Cookie等信息),而Postman或Flutter客户端默认的请求不具备这些特征,因此被拦截。


Postman中的解决步骤

  • 复制浏览器的请求头信息

    1. 打开浏览器访问目标API地址,按F12打开开发者工具
    2. 切换到「Network」标签,刷新页面后找到该JSON请求,查看「Request Headers」
    3. 复制User-Agent和Cookie这两个字段的内容
    4. 在Postman的请求「Headers」中添加这两个字段,粘贴对应的值
  • 开启Postman的自动Cookie管理
    进入Postman的「Settings」→「General」,勾选「Automatically send cookies」,后续请求会自动携带获取到的Cookie


Flutter中的解决步骤

方法1:手动添加请求头(快速临时解决)

使用http包时,直接在请求中加入浏览器的User-Agent和Cookie:

import 'package:http/http.dart' as http;

Future<void> getCoinChartData() async {
  final apiUrl = Uri.parse('https://www.coingecko.com/price_charts/486/usd/24_hours.json');
  final response = await http.get(
    apiUrl,
    headers: {
      'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36',
      'Cookie': '从浏览器复制的Cookie内容',
    },
  );

  if (response.statusCode == 200) {
    // 处理返回的图表数据
    print(response.body);
  } else {
    print('请求失败:${response.statusCode}');
  }
}

方法2:自动管理Cookie(长期稳定方案)

使用dio配合cookie_jar库,自动获取并维护Cookie:

  1. 先在pubspec.yaml中添加依赖:
dependencies:
  dio: ^5.3.3
  cookie_jar: ^4.0.1
  1. 编写请求代码:
import 'package:dio/dio.dart';
import 'package:cookie_jar/cookie_jar.dart';

Future<void> fetchChartData() async {
  final dio = Dio();
  final cookieJar = CookieJar();
  // 添加Cookie管理拦截器
  dio.interceptors.add(CookieManager(cookieJar));

  // 先请求CoinGecko主页获取有效Cookie
  await dio.get('https://www.coingecko.com/');

  // 再请求图表API
  final response = await dio.get(
    'https://www.coingecko.com/price_charts/486/usd/24_hours.json',
    options: Options(
      headers: {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36',
      },
    ),
  );

  print(response.data);
}

重要提示

你当前使用的是CoinGecko的非官方前端API,这类API没有公开的使用协议,随时可能被调整或封禁。建议改用CoinGecko官方提供的API(如/coins/{id}/market_chart接口)来获取价格数据,再自行绘制图表,官方API更稳定且有明确的使用规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 06:44:55