假设我们有 API,并且我们想用 Dio 管理所有 api。如何创建基本 Dio 选项?
我想控制 api 响应错误、连接超时等。使用 Riverpod 连接 API 与 Dio 的最佳方法是什么?
我认为你可以从最简单的方式开始使用 Riverpod :
final dioProvider = Provider<Dio>((ref) => Dio());
通过这种方式,您定义了一个全局使用的提供程序,它不会每次都创建一个新的 Dio() 对象。 然后,你可以添加一些像这样的东西:
class MyDioUseCase {
final Dio dio;
MyDioUseCase(this.dio);
void request() async {
Response response;
response = await dio.get('/test?id=12&name=dio');
print(response.data.toString());
// The below request is the same as above.
response = await dio.get(
'/test',
queryParameters: {'id': 12, 'name': 'dio'},
);
print(response.data.toString());
}
}
@Riverpod(keepAlive: true)
Dio dioProvider(DioProviderRef ref) => Dio();
@Riverpod(keepAlive: true)
Dio myDioUseCase(MyDioUseCaseRef ref) => MyDioUseCase (ref.watch(dioProvider));