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

Flutter网络请求完全指南

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

安卓手机设置VPN教程

安卓手机设置VPN教程

安卓手机需要使用软件,在下载软件前,先将下图二维码长按(截图)保存至相册。然后打开本链接下载软件(vpn.apk)第1步,下载后按引导完成安装,安装后如下图:第2步,打开软件,参照下图的箭头的位置“+”号添加。第3步,弹出对话框,选择“导入配置或压缩包”,找到先前保存在相册中的二维码。第4步,找到并...

4种方法教你如何永久保存微信聊天记录,总有一个适合你

4种方法教你如何永久保存微信聊天记录,总有一个适合你

微信聊天记录的保存问题一直是用户们关注的焦点。将详细介绍如何永久保存微信聊天记录的多种方法,帮助用户们更好地管理自己的聊天记录。一、微信电脑端备份聊天记录功能在PC微信左下角找到并点击“更多”按钮。依次选择“备份与恢复”和“备份聊天记录至电脑”。    2.保持手机和电脑在同一个...

教您如何将微信聊天记录导出成html等格式

教您如何将微信聊天记录导出成html等格式

可以将微信中的聊天记录(包括文字、图片、语音、表情包甚至拍一拍)导出,方便我们随时分享和查看,此外还有聊天记录分析等有趣的功能,感兴趣的小伙伴可以研究一下。我个人认为导出成htmf是最方便的一种格式,数据导出后点开文件夹中后缀名为.html文件就可以在浏览器中查看所有的聊天记录啦。...

教你如何在智能手机上保护个人隐私

教你如何在智能手机上保护个人隐私

保护个人隐私是每个人都应该关注的问题,尤其是在智能手机使用如此普及的今天。我们的手机里储存着大量的个人信息,如联系人、短信、通话记录、照片、视频、社交媒体账户等等,如果不加以保护,这些信息就可能会被不法之徒窃取、泄露或滥用。那么,怎样在智能手机上保护个人隐私呢?以下是手机数据工厂huifus.com...

本地操作软件修改聊天记录

本地操作软件修改聊天记录

微信对现代生活的重要性不可忽视。作为一款集即时通讯、社交、支付和服务于一体的综合平台,微信已经深刻地融入了人们的日常生活。有时发错消息想更改怎么办,今手机数据工厂huifus.com为大家详细讲解一下微信聊天内容可以通过专用修改助手来编辑文字内容来达到修改目的。1.  下载软件:先下载软件...

手机数据工厂对强权、制度、民主的理解

手机数据工厂对强权、制度、民主的理解

你制订一个法律,只要求我遵守,这叫强权你制订一个法律,我们一起遵守,这叫制度你和我一起制订个法律,然后我们一起遵守这叫民主...

发表评论

访客

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