dio是经常使用到的一个包,为flutter的日常开发提供了很多支持。本文主要描述如何使用Dio封装ajax请求。
dio的依赖:dependencies:
dio:3.0.8
dio包的导入:import'package:dio/dio.dart';
dio使用代码示例://ajaxpost
staticFuturepost(Stringurl,Mapbody,{headers=const{},timeout=15}){
//设置发送超时、接收超时以及httpheader
BaseOptionsoptions=newBaseOptions(sendTimeout:5000,receiveTimeout:timeout*1000,headers:headers);
Diodio=Dio(options);
returndio.post(url,queryParameters:body).then((res){
if(res.statusCode==200){//httpstatuscode
returnres.data;
}else{
return{"code":1,"msg":"服务不可用"};
}
}).catchError(((error,stack){
//处理异常
if(errorisTimeoutException){
return{"code":1,"msg":"请求超时"};
}elseif(errorisDioError){
return{"code":1,"msg":"网络请求失败,请稍后再试"};
}else{
return{"code":1,"msg":"请求异常"};
}
}));
}
//ajaxget
staticFutureget(Stringurl,{headers=const{},timeout=15}){
BaseOptionsoptions=newBaseOptions(sendTimeout:5000,receiveTimeout:timeout*1000,headers:headers);
Diodio=Dio(options);
returndio.get(url).then((res){
if(res.statusCode==200){
returnres.data;
}else{
return{"code":1,"msg":"服务不可用"};
}
}).catchError((error){
if(errorisTimeoutException){
return{"code":1,"msg":"请求超时"};
}elseif(errorisDioError){
return{"code":1,"msg":"网络请求失败,请稍后再试"};
}
return{"code":1,"msg":"请求异常"};
});
}
如果觉得《dio设置自定义post请求_使用Dio封装ajax的post和get操作》对你有帮助,请点赞、收藏,并留下你的观点哦!