Dio 实例在获取 API 端点时没有 return 响应

Dio instance doesnt return a response when getting a API endpoint

我正在尝试从 Api 中获得响应,但 return 中没有响应。 Dio 实例在获取 API 端点

时没有 return 响应
import 'package:dio/dio.dart';

class DioService {
static const baseUrl = "https://dictionaryapi.dev/";
Dio dio = Dio();
DioService() {
initializeInterceptors();
}
initializeInterceptors() {
dio.interceptors.add(InterceptorsWrapper(onError: (e, _) {
  print(e.message);
}, onRequest: (r, _) {
  print(r.method);
  print(r.path);
}, onResponse: (r, _) {
  print(r.data);
}));
}

Future<Response> getRequest(String endPoint) async {
Response response;
try {
  response = await dio.get(endPoint);
  print(response.toString());
} on DioError catch (e) {
  print(e);
  throw Exception(e.message);
}
return response;
}
}

控制台:

I/flutter (17735): GET
I/flutter (17735): https://api.dictionaryapi.dev/api/v2/entries/en_US/dog

您的拦截器正在将请求路由到黑洞中。

每个拦截器方法的第二个参数是一个处理程序。为了继续请求,拦截器必须将(可能修改的)请求选项传递给处理程序,错误和响应处理程序也是如此。

dio.interceptors.add(InterceptorsWrapper(onError: (e, handler) {
  print(e.message);
  handler.next(e);
}, onRequest: (r, handler) {
  print(r.method);
  print(r.path);
  handler.next(r);
}, onResponse: (r, handler) {
  print(r.data);
  handler.next(r);
}));

特别是对于日志记录,请注意 Dio 提供了 LogInterceptor class,因此您无需自己动手。