在 Flutter 中发出 HTTP 请求的最佳库(2022 年

简介: 本文将向您介绍最好的开源软件包列表,这些软件包可以帮助我们在 Flutter 应用程序中发出 HTTP 请求。事不宜迟,让我们探索重要的事情。HttpPub likes: 3910+GitHub stars: 735+License: BSD-3-ClauseWritten in: DartLinks: Pub page | GitHub repo | Official docs

本文将向您介绍最好的开源软件包列表,这些软件包可以帮助我们在 Flutter 应用程序中发出 HTTP 请求。事不宜迟,让我们探索重要的事情。

Http


该包由 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


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 有几个扩展:


Retrofit


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


与 Retrofit 类似,Chopper 是 Dart 和 Flutter 的另一个 HTTP 客户端生成器。您将需要安装chopperchopper_generatorbuild_runner。有关使用 Chopper 的更多详细信息,请参阅其官方文档

总结

我们已经浏览了 Flutter 最受欢迎的 HTTP 客户端插件列表。如果您想获得更多关于 Flutter 的知识并探索更多新奇有趣的东西以更好地使用该框架,可以关注我的公众号,我的公众号里面有更多细节。


大家的点赞,收藏是对坚果的最大支持

相关文章
|
7天前
|
JSON Dart API
Flutter dio http 封装指南说明
本文介绍了如何实现一个通用、可重构的 Dio 基础类,包括单例访问、日志记录、常见操作封装以及请求、输出、报错拦截等功能。
Flutter dio http 封装指南说明
|
1天前
|
安全 网络安全 开发者
概述HTTP请求方法
【7月更文挑26天】
|
13天前
|
测试技术 Python
我们假设要测试一个名为`http://example.com`的网站,并对其进行简单的GET请求性能测试。
我们假设要测试一个名为`http://example.com`的网站,并对其进行简单的GET请求性能测试。
|
13天前
|
Shell Python
`pytest-httpserver`是一个pytest插件,它允许你在测试期间启动一个轻量级的HTTP服务器,并模拟HTTP请求和响应。
`pytest-httpserver`是一个pytest插件,它允许你在测试期间启动一个轻量级的HTTP服务器,并模拟HTTP请求和响应。
|
16天前
|
JSON 网络协议 数据格式
网络协议基础:HTTP请求与响应详解
【7月更文挑战第11天】HTTP协议作为Web通信的核心,其请求与响应机制是理解网络通信的关键。本文详细介绍了HTTP请求与响应的格式、过程以及常用的请求方法,帮助读者更好地理解HTTP协议的工作原理和应用场景。在实际应用中,HTTP协议的可定制性和灵活性使其能够适应多种
|
20天前
深入理解HTTP请求的五个要点
状态码:每个HTTP响应都包含一个状态码,它表示请求的结果。例如,200表示请求成功,404表示请求的资源未找到,500表示服务器内部错误等。
18 3
|
25天前
|
XML 前端开发 JavaScript
JavaEE:http请求 | 过滤器 | 同步与异步请求 | 跨域问题 | axios框架 有这一篇就够!
JavaEE:http请求 | 过滤器 | 同步与异步请求 | 跨域问题 | axios框架 有这一篇就够!
|
13天前
|
API Python
首先,我们导入了`http.client`模块,它是Python标准库中的一个模块,用于创建和发送HTTP请求。
首先,我们导入了`http.client`模块,它是Python标准库中的一个模块,用于创建和发送HTTP请求。
|
13天前
|
网络协议 安全 Python
我们将使用Python的内置库`http.server`来创建一个简单的Web服务器。虽然这个示例相对简单,但我们可以围绕它展开许多讨论,包括HTTP协议、网络编程、异常处理、多线程等。
我们将使用Python的内置库`http.server`来创建一个简单的Web服务器。虽然这个示例相对简单,但我们可以围绕它展开许多讨论,包括HTTP协议、网络编程、异常处理、多线程等。
|
25天前
|
缓存 安全 搜索推荐
HTTP 请求方法:你需要知道的一切
在 Web 开发领域,HTTP 方法在定义客户端如何与 Web 服务器交互以及对资源执行不同操作方面起着至关重要的作用。HTTP(Hypertext Transfer Protocol,超文本传输协议)是现代网络应用的栋梁,它定义了客户端与服务器之间的通信方式。