如何在Angular Dart中构建HttpInterceptor服务?

如何在Angular Dart中构建HttpInterceptor服务?,dart,angular-dart,Dart,Angular Dart,我正在尝试将Angular 2应用程序的代码移植到Angular Dart,以便在Flatter中重用业务逻辑。 我的应用程序使用HttpInterceptors进行错误处理和服务器授权 在typescript中,我将注入一个简单的服务: @Injectable({ providedIn: 'root' }) export class InterceptorService implements HttpInterceptor { intercept(req: HttpRequest<

我正在尝试将Angular 2应用程序的代码移植到Angular Dart,以便在Flatter中重用业务逻辑。 我的应用程序使用HttpInterceptors进行错误处理和服务器授权

在typescript中,我将注入一个简单的服务:

@Injectable({
  providedIn: 'root'
})
export class InterceptorService implements HttpInterceptor {
  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    return;
  }
  constructor(private auth: AuthService) { }
   intercept(
     req: HttpRequest<any>,
     next: HttpHandler
   ): Observable<HttpEvent<any>> {}
}
@可注入({
providedIn:'根'
})
导出类拦截器服务实现HttpInterceptor{

intercept(req:HttpRequest)但它可以追溯到5年前,在这段时间内,它的实现方式可能已经发生了很大的变化。

事实证明,有几种方法可以在角度飞镖/颤振中实现这一点

一些构建在dart http之上的第三方库为http拦截(,)提供了方便的方法。但是,两者都在客户端级别处理拦截

我决定使用Dart Http库,使用:

类UserAgentClient扩展了http.BaseClient{ 最终字符串用户代理; 最终http.Client\u-inner; UserAgentClient(this.userAgent,this.\u内部); 未来发送(BaseRequest请求){ request.headers['user-agent']=userAgent; 返回-内部发送(请求); } }
class UserAgentClient extends http.BaseClient {
  final String userAgent;
  final http.Client _inner;

  UserAgentClient(this.userAgent, this._inner);

  Future<StreamedResponse> send(BaseRequest request) {
    request.headers['user-agent'] = userAgent;
    return _inner.send(request);
  }
}