在实际应用开发中,我们会有像 token、appVersionCode 等等这些每个接口请求都需要传的参数 ,称之为公共请求参数,公共请求参数配置方式总结有三:
-
在get与post请求时将参数配置进去,也可以通过请求header配置
-
通过请求header将参数配置进去
-
通过拦截器将请求参数配置到参数配置中或者是header中
那么在这里 dio 的请求中我们可以考虑这样来配制:
String application = "V 1.2.2";
int appVersionCode = 122;
void configCommonPar(url,data,Map<String, dynamic> queryParameters){
if (data != null) {
data['application'] = application;
data['appVersionCode'] = appVersionCode.toString();
} else if (queryParameters != null) {
queryParameters['application'] = application;
queryParameters['appVersionCode'] = appVersionCode.toString();
} else {
if (url.contains("?")) {
url += "&application=$application&appVersionCode=$appVersionCode";
} else {
url += "?application=$application&appVersionCode=$appVersionCode";
【视频教程 感兴趣的伙伴可以瞅瞅】
题记—— 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天。重要消息网易云【玩转大前端】配套课程EDU配套 教程flutter跨平台开发一点一滴分析系列文章系列文章 在这里了本文章将讲述1.get请求中配置公共参数2.post请求配置公共参数3.请求header配置1 引言在实际应用开发中,我们会有像 token、appVersionCode 等等这些每个接口请求都需要传的参数 ,称之为公共请求参数,公共请求参数配置方式总结有三:在get
Flutter网络请求使用的是Dio。Dio是一个强大易用的dart http请求库,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载…….
Flutter json数据解析是使用了json_serializable package包。它是一个自动化源代码生成器,可以为我们生成JSON序列化模板。由于序列化代码不再由我们手写和维护,我们将运行时产生JSON序列化异常的风险降至最低。
Flutter网络请求数据并且展示效果图:
数据是使用的聚合数据的API,影讯API合集,大家可以注册个账号,申请使用一下,像这样
在pubs
import 'package:dio/dio.dart';
import 'dart:convert';
import 'package:micro_course/http/ResultCode.dart';
import 'package:micro_course/http/GlobalConfig.dart';
class DioManger{
static DioManger _instance;
static
在开发过程中,我们经常会用到网络请求,在flutter框架中,dio框架非常不错,所以今天的文章在dio的基础上搭建一套网络持久化框架,那么在flutter项目中如何搭建一套,高可用性,维护性较高的dio公共请求参数框架呢?
搭建前夕准备
一、基本认知
要持久化那么必然要有存储设备
持久化的数据在app启动后要即使填充到项目中
由于项目中网络请求地址繁多,类型不同,需要持久化的位置不同
二、基于基本认知来找合适的工具&必要点
2.1 持久化的工具:
share_pre
response = await dio.post(“http/test/upload”, data: formData);
//上传多个文件
formData = FormData.fromMap({
“animal”: “dog”,
“files”: [
await MultipartFile.fromFile(“assets/data/test1.json”, filename: “test1.json”),
await MultipartFile.fromFile(“assets/data/
cookie,session,token这三兄弟真令人头大,安卓里面是,flutter也一样。
但好在dio有定义好的cookie管理库
dio.interceptors.add(CookieManager(CookieJar()));
但是你知道的,有的后台cookie不知道会给你放在哪····而且要是用session和token就没办法了,这次遇到的问题是在 options的cookie属性...
dio是一个强大的Dart Http请求库,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载、超时等…
我们的网络请求就是在dio的基础上封装的 . 所以要引入dio包.
dependencies:
dio: ^x.x.x // 请使用pub上的最新版本
HttpUtil
* Created by 李卓原 on ...
前阵子有同学反馈Flutter中的http请求无法通过fiddler抓包,作者喜欢使用Charles抓包工具,于是抽时间写了个小demo测试了一下,结论是在手机上设置代理,Charles确实抓不到请求数据包。于是对该问题进行了分析:
确定使用的是http发起的get请求,理论上http协议应该可以被Charles抓到包的,如果没有抓到包,那可能是没有走代理,于是乎通过将笔记本连接的wif...
Flutter Dio 是一个用于进行 HTTP 请求的库。你可以使用 Dio 来发送 GET、POST、PUT、DELETE 等类型的请求,并处理响应数据。
首先,你需要在 `pubspec.yaml` 文件中添加 dio 的依赖:
```yaml
dependencies:
dio: ^4.0.0
然后,在需要发送 HTTP 请求的地方,你可以创建一个 Dio 的实例,并使用它来发送请求。以下是一个发送 GET 请求的示例:
```dart
import 'package:dio/dio.dart';
void main() async {
// 创建 Dio 实例
Dio dio = Dio();
try {
// 发送 GET 请求
Response response = await dio.get('https://api.example.com/data');
// 处理响应数据
print(response.data);
} catch (e) {
// 处理异常
print(e);
你可以调用 `dio.get()` 方法来发送 GET 请求,并传入请求的 URL。然后,你可以使用 `response.data` 来获取响应数据。
除了 GET 请求,你还可以使用 `dio.post()`、`dio.put()`、`dio.delete()` 等方法来发送其他类型的请求。你可以在请求中添加参数、请求头、请求体等信息。
这只是 Dio 库的基本用法,你还可以通过配置实例来设置超时时间、拦截器等功能。你可以查阅 Dio 的文档以了解更多信息。