import 'dart:convert';
import 'package:dio/dio.dart';
// Create a dio instance
Dio dio = new Dio();
class HttpUtils {
HttpUtils() {
// Add an interceptor to the constructor
dio.interceptors.add(CustomInterceptors());
}
// Get method path and query parameters
Future get(path, query) async {
Response resp;
try {
resp = await dio.get(path, queryParameters: query);
if (resp.statusCode == 200) {
String val = resp.toString();
return jsonDecode(val);
} else {
String val = resp.toString();
returnjsonDecode(val); }}catch (error) {
returnerror; }}/ / post method
Future post(path, data) async {
Response resp;
try {
resp = await dio.post(path, data: data);
if (resp.statusCode == 200) {
String val = resp.toString();
return jsonDecode(val);
} else {
String val = resp.toString();
returnjsonDecode(val); }}catch (error) {
return error;
}
}
Future put(path, data) async {
Response resp;
try {
resp = await dio.put(path, data: data);
if (resp.statusCode == 200) {
String val = resp.toString();
return jsonDecode(val);
} else {
String val = resp.toString();
returnjsonDecode(val); }}catch (error) {
returnerror; }}}class CustomInterceptors extends InterceptorsWrapper {
// The future function can be set asynchronously
@override
Future onRequest(RequestOptions options) {
// Set timeout
options.connectTimeout = 30000;
options.receiveTimeout = 30000;
/ / set the token
options.headers["Authorization"] = "Bearer ";
// Set the request header
options.headers['content-type'] = "application/x-www-form-urlencoded";
print('-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - requests start -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --');
print('- Request mode:${options? .method}');
print('- Request data:${options? .data}');
print('- Request header information:${options.headers}');
return super.onRequest(options);
}
@override
Future onResponse(Response response) {
print('-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- end request -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --');
return super.onResponse(response);
}
@override
Future onError(DioError err) {
print('-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- error request -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --');
print('- Error type:${err.type}');
print('- Error message:${err.message}');
print('- error: $err');
return super.onError(err); }}Copy the code