Files
CompanyProject/滴滴淘/ddt_flutter/lib/http/index.dart
2024-09-27 01:32:49 +08:00

89 lines
2.3 KiB
Dart
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:flutter_app/http/config.dart';
import 'package:bot_toast/bot_toast.dart';
class Http {
Dio _dio;
Http() {
this._dio = new Dio(new BaseOptions(
baseUrl: config.BASE_URL,
connectTimeout: 3000,
receiveTimeout: 3000,
));
this._dio.interceptors.add(InterceptorsWrapper(
onRequest:(RequestOptions options){
/// 请求发送前拦截,对 queryParameters 参数进行RSA公钥加密放到token中发送给后端
/// 后端私钥解密,查询数据,然后通过私钥加密数据再返回给前端
///options.headers = options.queryParameters;
///print(options.headers);
return options;
},
onResponse:(Response response) {
/// 响应拦截器,将数据返回给前端之前先使用公钥解密后端的数据,然后将解密后明文给前端
// 在返回响应数据之前做一些预处理
return response;
},
onError: (DioError e) {
return e;
}
));
}
/***
* get 请求
* url 请求地址
* params 请求参数
*/
get (String url, Object params) async {
Response response;
try {
response = await this._dio.get(url, queryParameters: params);
return response.data;
} on DioError catch (e) {
if (CancelToken.isCancel(e)) {
BotToast.showSimpleNotification(
title: 'GET请求取消',
subTitle: e.message,
hideCloseButton: true
);
}
BotToast.showSimpleNotification(
title: 'GET请求错误',
subTitle: e.message,
hideCloseButton: true
);
print(e.message);
}
}
/***
* post 请求
* url 请求地址
* params 请求参数
*/
post (String url, Object params) async {
Response response;
try {
response = await this._dio.post(url, data: params);
return response.data;
} on DioError catch (e) {
if (CancelToken.isCancel(e)) {
BotToast.showSimpleNotification(
title: 'POST请求取消',
subTitle: e.message,
hideCloseButton: true
);
}
BotToast.showSimpleNotification(
title: 'POST请求错误',
subTitle: e.message,
hideCloseButton: true
);
}
}
}