📜  Flutter – 从互联网获取数据(1)

📅  最后修改于: 2023-12-03 14:41:16.080000             🧑  作者: Mango

Flutter – 从互联网获取数据

在创建 Flutter 应用程序时,从互联网获取数据是非常常见的需求。在这篇文章中,我们将介绍 Flutter 中的常用方法和包,用于从互联网获取数据。

使用 http 包

http 是 Dart Flutter 中常用的 HTTP 请求包。它提供了很多功能,包括异步请求、HTTP 响应码检查、Header、Cookie、拦截器、等等。

你可以在 pubspec.yaml 文件中添加以下配置,以将 http 包添加到项目中:

dependencies:
  http: ^0.12.1

接下来,你可以使用以下代码片段从互联网获取 JSON 数据并解析它:

import 'dart:convert';

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

Future<Map<String, dynamic>> getData() async {
  const url = 'https://jsonplaceholder.typicode.com/todos/1';
  final response = await http.get(url);

  if (response.statusCode == 200) {
    return jsonDecode(response.body);
  } else {
    throw Exception('Failed to load data');
  }
}
使用 Dio 包

dio 是另一个常用的 HTTP 请求包,它提供了比 http 包更多的功能,例如 FormData、拦截器、请求取消等等。

你可以在 pubspec.yaml 文件中添加以下配置,以将 dio 包添加到项目中:

dependencies:
  dio: ^4.0.0

接下来,你可以使用以下代码片段从互联网获取 JSON 数据并解析它:

import 'dart:convert';

import 'package:dio/dio.dart';

Future<Map<String, dynamic>> getData() async {
  const url = 'https://jsonplaceholder.typicode.com/todos/1';
  final response = await Dio().get(url);

  if (response.statusCode == 200) {
    return jsonDecode(response.toString());
  } else {
    throw Exception('Failed to load data');
  }
}
结论

无论你选择 http 包还是 dio 包,都可以在 Flutter 中很容易地从互联网获取数据。这些包都提供了很多功能和选项,可以让你轻松地满足你的需求。