0

Dio インターセプターを実装しようとしているので、コードで使用できるようになります。

私はこのインターセプターを多くの場所で使用します。したがって、それをクラスまたはインターフェイスのどちらか最適な方に配置し、サブクラスを拡張または実装するのが理にかなっていると思いました。

私はこれまでのところこれを持っています:

class AppInterceptor {
  Dio dio = Dio();
  AppInterceptor() {
    dio.interceptors
        .add(InterceptorsWrapper(onRequest: (Options options) async {
        var token = await getAuthorizationToken();

        options.headers["Authorization"] = 'Bearer $token';
        return options;

    }, onResponse: (Response response) {
      // Finally, the string is parsed into a JSON object.
      //print(response.toString());
      return response;
    }, onError: (DioError e) {
      print('somthing went wrong');
      // Do something with response error
      return e; //continue
    }));
  }
}

サブクラスでこれを使用して http 呼び出しを行うにはどうすればよいですか?

httpコールを実行しようとしたときに、次のようなことを試しました:

 Response response = await AppInterceptor.dio.post(Global.functionsUrl+'/auth/linkuseraccount/', data: {'hey': 'hello'});
  print(response);

毎回失敗します Unhandled Exception: DioError [DioErrorType.RESPONSE]: Http status error [403]

私のバックエンドから、インターセプターが認証ヘッダーを渡さなかったために失敗したことがわかります。

これについてどうすればよいですか?

4

0 に答える 0