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

Flutter API开发中如何将curl请求转换为适配Dio的HTTP URL

问题说明

你给出的curl是GET类型的接口请求,不存在可以直接调用的纯HTTP URL——因为该接口要求的两个鉴权/格式声明参数是放在HTTP请求头里传递的,不属于URL路径或查询参数的一部分,没法拼接到URL上直接访问,必须在发起HTTP请求时同步携带对应请求头才能正常调用。

curl参数对应拆解
  • 请求方法:GET
  • 请求地址:https://assignment-api.blocked.com.tr/api/v1/product/all
  • 必传请求头:
    • accept: application/json,声明客户端期望接收JSON格式的响应数据
    • access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InN1bGV5bWFudXJlbjA3QGdtYWlsLmNvbSIsImlhdCI6MTY1NDY1NTIzNSwiZXhwIjoxNjgwNTc1MjM1fQ.L3t4E-x-IWlT1wjRx3WNzp-ecX-MsntIl-tRiD9zZmg,接口访问的身份鉴权凭证
Dio 可直接运行的调用代码

确保你的项目已经安装并引入dio依赖后,直接使用以下代码即可发起请求:

import 'package:dio/dio.dart';
import 'package:flutter/foundation.dart';

void getAllProducts() async {
  final Dio dio = Dio();
  try {
    final res = await dio.get(
      'https://assignment-api.blocked.com.tr/api/v1/product/all',
      options: Options(
        headers: {
          'accept': 'application/json',
          'access-token': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InN1bGV5bWFudXJlbjA3QGdtYWlsLmNvbSIsImlhdCI6MTY1NDY1NTIzNSwiZXhwIjoxNjgwNTc1MjM1fQ.L3t4E-x-IWlT1wjRx3WNzp-ecX-MsntIl-tRiD9zZmg'
        },
        responseType: ResponseType.json,
      ),
    );
    // res.data 即为接口返回的商品数据,可直接用于后续业务处理
    debugPrint(res.data.toString());
  } on DioException catch (e) {
    // 按需处理请求异常:401为token失效、404为地址错误、500为服务端问题
    debugPrint('请求异常: ${e.message}');
  }
}

补充提示:你使用的access-token为JWT格式,内置的exp字段标记了凭证过期时间,如果请求返回401未授权错误,优先检查token是否过期,替换为新的有效token即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 08:48:25