init method
初始化公共属性
Implementation
init(HttpDioConfig config) {
VFTextDelegateHelper.getErrorMsg();
httpDioConfig = config;
dio.options = dio.options.copyWith(
baseUrl: config.baseUrl.toString(),
connectTimeout:Duration(milliseconds: config.connectTimeout) ,
receiveTimeout: Duration(milliseconds: config.receiveTimeout),
headers: config.headers ?? const {},
);
List<Interceptor>? interceptors = config.interceptors;
// 在初始化http类的时候,可以传入拦截器
if (interceptors != null && interceptors.isNotEmpty) {
dio.interceptors.addAll(interceptors);
}
// dio内部仍然使用HttpClient发起的请求,所以代理、请求认证、证书校验等和HttpClient是相同的,我们可以在onHttpClientCreate回调中设置
// (dio.httpClientAdapter as IOHttpClientAdapter).onHttpClientCreate = (client) {
// //校验证书 这一段是解决安卓https抓包的问题
// client.badCertificateCallback = (X509Certificate cert, String host, int port) {
// return Platform.isAndroid;
// };
//
// if (config.isNeedProxy) {
// Log.i("====================设置代理=============${config.proxyHost}");
//
// client.findProxy = (uri) {
// return config.proxyHost;
// };
// }
// return client;
// };
dio.httpClientAdapter = IOHttpClientAdapter(
createHttpClient: () {
final client = HttpClient();
client.badCertificateCallback = (X509Certificate cert, String host, int port) {
return Platform.isAndroid;
};
if (config.isNeedProxy) {
VLog.i("====================设置代理=============${config.proxyHost}");
client.findProxy = (uri) {
return config.proxyHost;
};
}
return client;
},
);
}