首先會(huì)出現(xiàn)這個(gè)錯(cuò)誤,經(jīng)過(guò)百度查詢很多文章都是說(shuō)的網(wǎng)絡(luò)權(quán)限的問(wèn)題,在排查不是權(quán)限的問(wèn)題是經(jīng)過(guò)一番折騰后終于解決了問(wèn)題。
OS Error: No address associated with hostname, errno = 7
以下代碼在dio3.0的時(shí)候不會(huì)出現(xiàn)問(wèn)題,但是4.0的時(shí)候會(huì)報(bào)錯(cuò)
dio.interceptors.add(InterceptorsWrapper(
onRequest:(RequestOptions options, RequestInterceptorHandler type){
Map<String, dynamic> headers = options.headers;
String tokenHead = SpUtil.getString("tokenHead");
String toKen = SpUtil.getString("token");
if(toKen!=null && options.path.indexOf('api/v1/login')==-1 && options.path.indexOf('loginByWeChat')==-1 && options.path.indexOf('aliyuncs.com')==-1 && options.path.indexOf('weixin.qq.com')==-1){
headers[tokenHead] = toKen;
}
// 在請(qǐng)求被發(fā)送之前做一些事情
print('請(qǐng)求頭部:${options.headers}');
return options;
},
onResponse:(Response response, ResponseInterceptorHandler type) {
// 在返回響應(yīng)數(shù)據(jù)之前做一些預(yù)處理
return response;
},
onError: (DioError e, ErrorInterceptorHandler type) {
// 當(dāng)請(qǐng)求失敗時(shí)做一些預(yù)處理
return e;
}
));
修改后的代碼
dio.interceptors.add(InterceptorsWrapper(
onRequest:(RequestOptions options, RequestInterceptorHandler handler){
Map<String, dynamic> headers = options.headers;
String tokenHead = SpUtil.getString("tokenHead");
String toKen = SpUtil.getString("token");
if(toKen!=null && options.path.indexOf('api/v1/login')==-1 && options.path.indexOf('loginByWeChat')==-1 && options.path.indexOf('aliyuncs.com')==-1 && options.path.indexOf('weixin.qq.com')==-1){
headers[tokenHead] = toKen;
}
// 在請(qǐng)求被發(fā)送之前做一些事情
handler.next(options);
},
onResponse:(Response response, ResponseInterceptorHandler handler) {
// 在返回響應(yīng)數(shù)據(jù)之前做一些預(yù)處理
handler.next(response);
},
onError: (DioError e, ErrorInterceptorHandler handler) {
// 當(dāng)請(qǐng)求失敗時(shí)做一些預(yù)處理
handler.next(e);
}
));
}
希望以上代碼可以給你幫助,也警醒自己在日常編程的過(guò)程中加強(qiáng)嚴(yán)謹(jǐn)性。