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

Flutter网络请求完全指南

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

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网络请求完全指南” 的相关文章

普通版袁大头真假鉴别/手把手教你银元鉴定

普通版袁大头真假鉴别/手把手教你银元鉴定

  一块普通版袁大头行情在800-1500左右,今天我们来看看它的真假鉴别一、银质辨伪:辩别银元的真假,首先从辨识银质的真假开始,银元连银都不是怎么能称为银元呢,从古有“银子发白眼睛发黑”之说,就是说真币越擦越白,晶莹锃亮,表里一致,反之一擦就发黑或灰白,如镀银所制,则有一种浮躁感。二、...

修改聊天记录效果展示

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

手机用久了变卡顿,教你6步操作,手机立马流畅如新

手机用久了变卡顿,教你6步操作,手机立马流畅如新

手机卡顿,就如同一条,搁浅的电子“咸鱼”每一次滑动时,都伴随着,沉重的喘息。屏幕反应,慢上半拍,游戏帧率,犹如疯狂地跳水,就连扫码付款,也变成了一种,耐心的考验。但切莫着急换新机!今日这6步操作,便可让你的手机,由“老黄牛”变回“小猎豹”,流畅如初!一、深度清理:揪出空间"隐形杀手&quo...

微信、支付宝、网购订单模拟生成截图软件

微信、支付宝、网购订单模拟生成截图软件

通过简单的设置,可以方便的生成您想要的截图。如微信对话、微信转账、微信红包、微信钱包、微信零钱、支付宝聊天对话、支付宝转账等强大功能 。有了这款软件用户可以随意编辑截图,包括聊天内容,手机壁纸,甚至是转账截图,都可以进行自定义的调整,为大家的生活提供了更多的便利。复制链接到浏览器打开,注册、下载安装...

关闭这几个设置,手机瞬间杜绝监听偷窥

1. 关闭多余定位权限所有无关 APP,全部关掉定位只给地图、外卖临时用拒绝 24 小时跟踪你的行踪2. 关闭相机、麦克风权限小游戏、杂牌软件、工具箱全部禁用相机 + 麦克风防止后台偷偷录音、偷拍3. 关闭自动读取剪贴板杜绝 APP 偷看你复制的密码、验证码、聊天内容隐私再也不被偷偷收集4. 关闭后...

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

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

发表评论

访客

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