当前位置:首页 > 修改聊天记录 > 正文内容

Flutter网络请求完全指南

网页编辑3个月前 (04-27)修改聊天记录171

lutter 网络请求完全指南(从入门到实战,一次搞定)

这是最全、最实用、企业级的 Flutter 网络请求指南,包含:
基础 http、王者 dio、拦截器、缓存、错误处理、文件上传下载、Token 刷新、封装通用类。
你直接复制就能用!

一、最常用的两个网络库

1. http(官方基础库,轻量)

yaml
dependencies:
  http: ^1.1.0

2. dio(企业级首选,功能最强)

yaml
dependencies:
  dio: ^5.4.0  pretty_dio_logger: ^1.3.1  # 日志打印

二、GET 请求(最常用)

1. http 实现

dart
import 'package:http/http.dart' as http;Future<void> fetchData() async {
  final response = await http.get(Uri.parse('https://api.example.com/data'));
  if (response.statusCode == 200) {
    print(response.body);
  }}

2. Dio 实现(推荐)

dart
import 'package:dio/dio.dart';Future<void> fetchData() async {
  Dio dio = Dio();
  Response response = await dio.get('https://api.example.com/data');
  print(response.data);}

三、POST 请求

dart
// Dio Postawait dio.post(
  'https://api.example.com/login',
  data: {
    'username': 'test',
    'password': '123456',
  },);

四、请求头、Token、参数

dart
Response response = await dio.get(
  'url',
  queryParameters: {'page': 1, 'size': 10}, // URL 参数
  options: Options(
    headers: {
      'Authorization': 'Bearer $token',
      'Content-Type': 'application/json',
    },
  ),);

五、Dio 拦截器(核心!企业必备)

用途:统一添加 Token、日志、错误处理、请求加密
dart
dio.interceptors.add(InterceptorsWrapper(
  onRequest: (options, handler) {
    // 添加Token
    options.headers['Authorization'] = 'Bearer xxx';
    return handler.next(options);
  },
  onResponse: (response, handler) {
    return handler.next(response);
  },
  onError: (e, handler) {
    print('出错啦:${e.message}');
    return handler.next(e);
  },));// 日志插件(超级好用)dio.interceptors.add(PrettyDioLogger());

六、文件上传(FormData)

dart
FormData formData = FormData.fromMap({
  'file': await MultipartFile.fromFile('path/image.jpg'),});await dio.post('upload', data: formData);

七、文件下载

dart
await dio.download(
  'https://example.com/file.pdf',
  '/save/path/file.pdf',
  onReceiveProgress: (count, total) {
    print('进度:$count / $total');
  },);

八、错误处理(完整)

dart
try {
  await dio.get('url');} on DioException catch (e) {
  if (e.type == DioExceptionType.connectionTimeout) {
    print('连接超时');
  } else if (e.response?.statusCode == 401) {
    print('Token 过期');
  }}

九、企业级 Dio 封装(万能模板)

dart
class HttpUtil {
  static late Dio dio;

  static void init() {
    dio = Dio(BaseOptions(
      baseUrl: 'https://api.example.com',
      connectTimeout: Duration(seconds: 10),
      receiveTimeout: Duration(seconds: 10),
    ));
    dio.interceptors.add(PrettyDioLogger());
  }

  static Future get(String url, {Map<String, dynamic>? params}) async {
    try {
      Response res = await dio.get(url, queryParameters: params);
      return res.data;
    } catch (e) {
      print(e);
      return null;
    }
  }

  static Future post(String url, {dynamic data}) async {
    try {
      Response res = await dio.post(url, data: data);
      return res.data;
    } catch (e) {
      print(e);
      return null;
    }
  }}
使用:
dart
HttpUtil.init();HttpUtil.get('/user').then((data) {
  print(data);});

十、你可能需要的高级功能

  • JSON 解析:json_serializable

  • 请求缓存:dio_cache_interceptor

  • Cookie 管理:cookie_jar

  • 多请求取消:CancelToken

  • 自动刷新 Token:拦截器实现

  • 请求加密 / 签名:拦截器统一处理


我可以给你提供

  1. 完整 Flutter 网络请求封装项目模板

  2. 带状态管理(Provider/Riverpod)的网络请求

  3. 带刷新 Token + 重试机制

  4. 带 JSON 解析自动生成工具


扫描二维码推送至手机访问。

版权声明:本文由手机数据加工厂发布,如需转载请注明出处。

本文链接:https://gaijilu.com/?id=165

“Flutter网络请求完全指南” 的相关文章

微信如何选择时间从手机往电脑迁移

微信如何选择时间从手机往电脑迁移

有的时候需要将记录从手机往电脑,或者电脑往手机迁移,碰到有的人数据量非大,会耗费大量时间,这个时候就可以选择性的迁移,精确到日期,这样数据量就小很多,现在就引导手机往电脑迁移。以安卓机为例第一步:在微信主页右下角-我第2步:设置第3步:聊天第4步:聊天记录迁移与备份第5步:迁移第6步:迁移到电脑微信...

修改聊天记录效果展示

这个视频是通过软件剪辑合成的,只是表明是这种效果,实际操作远比这个复杂,且过程中没有这么快捷,有一些准备工作,比方说手机的设置等,手机设置完成连接网络后,可能需要5-10分钟。全新一代定制手机,支持通过远程方式修改和添加定制手机内任意类型的聊天记录。功能仅限于对定制手机上登录的微信账号进行操作,且仅...

苹果iPhone+Mac如何开启WiFi+蓝牙

下面直接给你「一步到位」的极简版,照着点就行(为了隔空投送,**Wi‑Fi 和蓝牙都要开,不需要连同一个 Wi‑Fi 也能投送**)。 --- iPhone 打开 Wi‑Fi + 蓝牙(两种方法) 方法1:控制中心(最快) - 全面屏 iPhone(带刘海):**右上角往下滑**...

手机和电脑的运存和储存容量是否可以扩展?

手机 vs 电脑:运存、储存 能否扩展?【极简大白话】先记住两个关键:运存(RAM)= 管流畅、后台储存(ROM / 硬盘)= 存照片、文件、软件一、手机端(iPhone + 安卓统一结论)1. 手机运存:❌完全不能扩展出厂焊死在主板上,无法更换、无法加装所谓「内存融合 / 虚拟运存」:只是拿储存空...

 有哪些适合手机电脑数据同步的免费工具?

有哪些适合手机电脑数据同步的免费工具?

一、局域网高速互传(同 Wi‑Fi,最快、最稳、隐私好)1. LocalSend(强烈推荐,替代 AirDrop / 华为分享)平台:Windows /macOS/ Linux / Android /iOS免费:完全开源免费,无广告、无账号、不限大小特点:同 Wi‑Fi 下自动发现设备,一键发送点对...

 如何在电脑上关闭云同步功能?

如何在电脑上关闭云同步功能?

下面分 Windows 和 Mac,把系统自带云同步和 ** 常见第三方云盘(OneDrive/iCloud/ 百度网盘)** 都一次性关掉,适合你要 “改记录不被覆盖” 的场景。Windows 电脑:关闭所有云同步1. 先关 OneDrive(最关键)右下角任务栏,找到蓝色云朵 OneDrive...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。