在 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 的知识并探索更多新奇有趣的东西以更好地使用该框架,可以关注我的公众号,我的公众号里面有更多细节。


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

相关文章
|
18天前
|
Web App开发 缓存 JavaScript
使用TypeScript创建高效HTTP代理请求
使用TypeScript创建高效HTTP代理请求
|
2天前
|
Java API Spring
Spring Boot中使用Feign进行HTTP请求
Spring Boot中使用Feign进行HTTP请求
|
2天前
|
缓存 负载均衡 NoSQL
Redis系列学习文章分享---第十四篇(Redis多级缓存--封装Http请求+向tomcat发送http请求+根据商品id对tomcat集群负载均衡)
Redis系列学习文章分享---第十四篇(Redis多级缓存--封装Http请求+向tomcat发送http请求+根据商品id对tomcat集群负载均衡)
8 1
|
6天前
|
XML 开发框架 前端开发
http请求响应的contentType
http请求响应的contentType
21 5
|
7天前
|
域名解析 存储 缓存
HTTP请求流程概览:浏览器构建请求行含方法、URL和版本;检查缓存;解析IP与端口
【6月更文挑战第23天】 HTTP请求流程概览:浏览器构建请求行含方法、URL和版本;检查缓存;解析IP与端口;TCP连接(HTTP/1.1可能需排队);三次握手;发送请求头与体;服务器处理并返回响应;TCP连接可能关闭或保持;浏览器接收并显示响应,更新缓存。HTTP版本间有差异。
21 5
|
11天前
|
Java 应用服务中间件 API
Tomcat处理一个HTTP请求的执行流程的详细解析
Tomcat处理一个HTTP请求的执行流程的详细解析
18 4
|
15天前
|
JSON 数据格式 Python
Python 的 requests 库是一个强大的 HTTP 客户端库,用于发送各种类型的 HTTP 请求
【6月更文挑战第15天】Python的requests库简化了HTTP请求。安装后,使用`requests.get()`发送GET请求,检查`status_code`为200表示成功。类似地,`requests.post()`用于POST请求,需提供JSON数据和`Content-Type`头。
38 6
|
17天前
|
Python
python做http请求
python做http请求
16 1
|
22天前
|
JSON API 数据格式
Requests库:轻松实现Python中的HTTP请求
Requests是Python的第三方HTTP库,简化了HTTP请求的发送,支持GET、POST等方法。要安装,使用`pip install requests`。Requests以其简洁API和强大功能成为网络编程首选工具,为开发者提供高效稳定的网络交互体验。
34 5
|
18天前
|
Web App开发 存储 网络安全
Charles抓包神器的使用,完美解决抓取HTTPS请求unknown问题
本文介绍了在 Mac 上使用的 HTTP 和 HTTPS 抓包工具 Charles 的配置方法。首先,强调了安装证书对于抓取 HTTPS 请求的重要性,涉及 PC 和手机端。在 PC 端,需通过 Charles 软件安装证书,然后在钥匙串访问中设置为始终信任。对于 iOS 设备,需设置 HTTP 代理,通过电脑上的 IP 和端口访问特定网址下载并安装证书,同时在设置中信任该证书。配置 Charles 包括设置代理端口和启用 SSL 代理。完成这些步骤后,即可开始抓包。文章还提及 Android 7.0 以上版本可能存在不信任用户添加 CA 证书的问题,但未提供解决办法。
62 0
Charles抓包神器的使用,完美解决抓取HTTPS请求unknown问题