You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.5KB

  1. import 'dart:convert';
  2. import 'dart:developer';
  3. import 'package:dio/dio.dart';
  4. import 'package:dio_http_cache/dio_http_cache.dart';
  5. import 'package:farm_tpf/utils/const_common.dart';
  6. import 'package:farm_tpf/utils/pref.dart';
  7. class DioProvider {
  8. static Dio instance() {
  9. final dio = Dio();
  10. // dio.interceptors.add(AuthInterceptor());
  11. dio.interceptors.add(HttpLogInterceptor());
  12. dio.interceptors.add(DioCacheManager(CacheConfig(baseUrl: ConstCommon.baseUrl)).interceptor);
  13. return dio;
  14. }
  15. }
  16. class HttpLogInterceptor extends InterceptorsWrapper {
  17. var pref = LocalPref();
  18. @override
  19. Future onRequest(RequestOptions options) async {
  20. var token = await pref.getString(DATA_CONST.TOKEN_KEY);
  21. // options.headers["Authorization"] = "Bearer $token";
  22. options.headers["Authorization"] =
  23. "Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJsZWNhb2FuaHF1b2MiLCJhdXRoIjoiUk9MRV9VU0VSIiwiZXhwIjoxNjc4ODk1MTIyfQ.jj3RbPZ4Q1yL9ImFGEPsJyy9SCVe7SKDw5vzHu6no2eUpWg78KVzEypY8W51VzrRa9gV04Yhp_l3YvEe8lsttQ";
  24. options.receiveTimeout = 20000;
  25. log("onRequest: ${options.uri}\n"
  26. "data=${options.data}\n"
  27. "method=${options.method}\n"
  28. "headers=${options.headers}\n"
  29. "queryParameters=${options.queryParameters}");
  30. return options;
  31. }
  32. @override
  33. Future onResponse(Response response) {
  34. log("onResponse: $response");
  35. return super.onResponse(response);
  36. }
  37. @override
  38. Future onError(DioError err) {
  39. log("onError: $err\n"
  40. "Response: ${err.response}");
  41. return super.onError(err);
  42. }
  43. }