如何使用 Retrofit 包访问 http 调用中的状态代码?
How to access status code in a http call using Retrofit package?
retrofit 需要一个 dio
对象,所以如何访问该 dio 对象来访问状态代码,如 200
或类似的东西,
改造基地class
@RestApi(baseUrl: 'url')
abstract class ApiService {
factory ApiService({Dio dio, String baseUrl}) {
return _ApiService(dio, baseUrl: baseUrl);
}
@GET('/user')
Future<List<Plant>> getUser(
@Query('userId') String id,
);
}
存储库
class Repository {
Dio dio = Dio();
ApiService apiService;
Repository() {
dio = Dio();
dio.interceptors.add(HeaderInterceptor());
apiService = ApiService(
dio: dio,
baseUrl: 'http://10.0.2.2:8080/api',
);
}
Future<User> getFloorPlanById(String id) async {
try {
final user = await apiService.getUser(id);
return user;
} on Exception catch (e) {
print(e.toString());
return null;
}
}
}
我想在这里访问状态代码,以便我可以根据状态代码显示不同类型的屏幕。
如果我直接使用它,那么我必须再次调用 api,这样就没有意义了。
so 如何在这里访问状态码?
我找到了两种方法,
方法一
使用DioError
on DioError catch (e) {
print(e.toString());
}
此处e
包含您可以使用的状态码
方法二
使用HttpResponse
使API的return类型HttpResponse
调用函数
ex-:
Future<HttpResponse> getUser(
@Query('userId') String id,
);
结果将包含数据以及状态代码和消息
retrofit 需要一个 dio
对象,所以如何访问该 dio 对象来访问状态代码,如 200
或类似的东西,
改造基地class
@RestApi(baseUrl: 'url')
abstract class ApiService {
factory ApiService({Dio dio, String baseUrl}) {
return _ApiService(dio, baseUrl: baseUrl);
}
@GET('/user')
Future<List<Plant>> getUser(
@Query('userId') String id,
);
}
存储库
class Repository {
Dio dio = Dio();
ApiService apiService;
Repository() {
dio = Dio();
dio.interceptors.add(HeaderInterceptor());
apiService = ApiService(
dio: dio,
baseUrl: 'http://10.0.2.2:8080/api',
);
}
Future<User> getFloorPlanById(String id) async {
try {
final user = await apiService.getUser(id);
return user;
} on Exception catch (e) {
print(e.toString());
return null;
}
}
}
我想在这里访问状态代码,以便我可以根据状态代码显示不同类型的屏幕。
如果我直接使用它,那么我必须再次调用 api,这样就没有意义了。
so 如何在这里访问状态码?
我找到了两种方法,
方法一
使用DioError
on DioError catch (e) {
print(e.toString());
}
此处e
包含您可以使用的状态码
方法二
使用HttpResponse
使API的return类型HttpResponse
调用函数
ex-:
Future<HttpResponse> getUser(
@Query('userId') String id,
);
结果将包含数据以及状态代码和消息