核心代码设置:
(dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate =
(HttpClient client) {
client.findProxy = (uri) {
return "PROXY 172.170.88.128:8888";
};
};
import 'dart:io';
import 'package:dio/adapter.dart';
import 'package:dio/dio.dart';
import 'package:flutter/foundation.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:maistore_app/config/constant.dart';
import 'package:maistore_app/model/result.dart';
class MmcRequest {
static var dio = Dio(
BaseOptions(
baseUrl: Constant.baseUrl, setRequestContentTypeWhenNoPayload: true),
);
static void init() {
if (kDebugMode) {
dio.interceptors
.add(LogInterceptor(requestBody: true, responseBody: true));
}
(dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate =
(HttpClient client) {
client.findProxy = (uri) {
return "PROXY 172.170.88.128:8888";
};
};
dio.interceptors.add(InterceptorsWrapper(
onRequest: (options, handler) {
return handler.next(options);
},
onResponse: (response, handler) {
final statusCode = response.statusCode;
if (statusCode != null && statusCode >= 200 && statusCode < 300) {
final result = ResultData<dynamic>.fromJson(response.data);
if (result.code >= 200 && result.code < 300) {
response.data = result.data;
return handler.next(response);
}
Fluttertoast.showToast(msg: result.msg ?? "${result.code}");
} else {
Fluttertoast.showToast(
msg: response.statusMessage ?? "${response.statusCode}");
}
return handler
.reject(DioError(requestOptions: response.requestOptions));
},
onError: (error, handler) {
final response = error.response;
Fluttertoast.showToast(
msg: response == null
? error.message
: ResultData.fromJson(response.data).msg ?? "");
return handler.reject(error);
},
));
}
}