本文将向您介绍最好的开源软件包列表,这些软件包可以帮助我们在 Flutter 应用程序中发出 HTTP 请求。事不宜迟,让我们探索重要的事情。
Http
- Pub likes: 3910+
- GitHub stars: 735+
- License: BSD-3-Clause
- Written in: Dart
- Links: Pub page | GitHub repo | Official docs
该包由 Dart 团队发布,目前是 pub.dev 上最受欢迎的 HTTP 包。它提供了一个高级 API,可以让您在处理网络任务时更轻松。您可以通过运行以下命令来安装它:
flutter pub add http
示例用法:
import 'package:http/http.dart' as http; void sendPostRequest() async { final url = Uri.parse('https://test.kindacode.com/api/v3/'); final response = await http.post(url, body: {'email': 'example@kindacode.com', 'name': 'Mr Happy'}); print('Response status: ${response.statusCode}'); print('Response body: ${response.body}'); }
该插件支持重试请求。您可以使用 RetryClient 类重试失败的请求:
import 'package:http/http.dart' as http; import 'package:http/retry.dart'; Future<void> bootstrap() async { final client = RetryClient(http.Client()); try { print(await client.read(Uri.parse('http://test.kindacode.com/api/v3/'))); } finally { client.close(); } }
Dio
- Pub likes: 3300+
- GitHub stars: 10.5k+
- License: MIT
- Written in: Dart
- Links: Pub page | GitHub repo | API reference
Dio 是 Flutter 生态系统中增长最快的 HTTP 包。它超级强大且易于使用。该软件包为我们带来了许多非常有用的功能:
- 全局配置
- 拦截器
- 表单数据
- 取消请求
- 重试请求
- 文件下载
- 暂停
- HTTPS 证书验证
- Http2
您可以通过运行以下命令安装 Dio:
flutter pub add dio
无需编写太多代码即可使用它:
import 'package:dio/dio.dart'; void getData() async { try { var response = await Dio().get('http://www.example.com'); print(response); } catch (e) { print(e); } }
Dio 有几个扩展:
- dio_cookie_manager : 用于使用 cookie
- dio_http2_adapter:用于 http2 的东西
Retrofit
- Pub likes: 650+
- GitHub stars: 720+
- License: MIT
- Written in: Dart, Ruby, Swift, Kotlin, Python
- Links: Pub page | GitHub repo | API reference
Retrofit 是一个类型转换的 dio 客户端生成器。它可以让你在 TypeScript 中使用类似装饰器的**@Something**编写代码。例如:
@JsonSerializable() class MyClass {} @PATCH("your-api-endpoint") Future<Task> updateTaskPart( @Path() String id, @Body() Map<String, dynamic> map); @PUT("your-api-endpoint") Future<Task> updateTask(@Path() String id, @Body() Task task); @DELETE("your-api-endpoint") Future<void> deleteTask(@Path() String id); @POST("your-api-endpoint") Future<Task> createTask(@Body() Task task);
有关详细信息,请参阅API reference。
Chopper
- Pub likes: 360+
- GitHub stars: 560+
- License: MIT
- Written in: Dart, Shell
- Links: Pub page | GitHub repo | API reference
与 Retrofit 类似,Chopper 是 Dart 和 Flutter 的另一个 HTTP 客户端生成器。您将需要安装chopper、chopper_generator和build_runner。有关使用 Chopper 的更多详细信息,请参阅其官方文档。
总结
我们已经浏览了 Flutter 最受欢迎的 HTTP 客户端插件列表。如果您想获得更多关于 Flutter 的知识并探索更多新奇有趣的东西以更好地使用该框架,可以关注我的公众号,我的公众号里面有更多细节。
大家的点赞,收藏是对坚果的最大支持