Flutter 如何从颤振中的dio获取自定义错误?
我试图从后端获取自定义错误,但DIO却给了我此错误: DioError[DioErrorType.RESPONSE]:Http状态错误[400] 这是我的密码:Flutter 如何从颤振中的dio获取自定义错误?,flutter,dart,dio,Flutter,Dart,Dio,我试图从后端获取自定义错误,但DIO却给了我此错误: DioError[DioErrorType.RESPONSE]:Http状态错误[400] 这是我的密码: @override Future<SignUpResponseModel> registerBuyer(BuyerModel user) async { final response = await api.dio.post('api/users/buyer', data: user.toJson());
@override
Future<SignUpResponseModel> registerBuyer(BuyerModel user) async {
final response = await api.dio.post('api/users/buyer', data: user.toJson());
if (response.statusCode == 200) {
return response.data.value;
} else {
final error =
response.data.errors[0] ?? "Error";
throw Exception(error);
}
}
@覆盖
未来注册购买者(BuyerModel用户)异步{
最终响应=wait api.dio.post('api/users/buyer',数据:user.toJson());
如果(response.statusCode==200){
返回response.data.value;
}否则{
最终错误=
响应.数据.错误[0]??“错误”;
抛出异常(错误);
}
}
解决方案是在代码的catch块中添加DIORROR。这样我就能够管理和访问来自后端的自定义错误
try {
final response =
await api.dio.post('api/users/buyer', data: user.toJson());
if (response.statusCode == 200) {
return response.data.value;
} else {
final error =
response.data.errors[0] ?? "Error";
throw Exception(error);
}
} catch (e) {
if (e is DioError) {
//This is the custom message coming from the backend
throw e.response.data['errors'][0] ??
"Error";
} else {
throw Exception("Error");
}
}
}
解决方案是在代码的catch块中加入DioError。这样我就能够管理和访问来自后端的自定义错误
try {
final response =
await api.dio.post('api/users/buyer', data: user.toJson());
if (response.statusCode == 200) {
return response.data.value;
} else {
final error =
response.data.errors[0] ?? "Error";
throw Exception(error);
}
} catch (e) {
if (e is DioError) {
//This is the custom message coming from the backend
throw e.response.data['errors'][0] ??
"Error";
} else {
throw Exception("Error");
}
}
}
状态代码400在后端处理?是。我已经知道怎么处理了。但是如果你知道更好的方法,请告诉我。谢谢大家!@dm_trYes您的方法还不错,尽管您可以避免在后端处理状态代码400两次时截获错误?是的。我已经知道怎么处理了。但是如果你知道更好的方法,请告诉我。谢谢大家!@dm_trYes您的方法不错,尽管您可以避免两次截获错误