Como adicionar interceptores HttpClient condicionalmente no Angular
Recentemente, tenho usado interceptores com Angular HttpClient.
Eu adiciono cabeçalhos correspondentes a alguns métodos HTTP GET e, para alguns, não preciso desses cabeçalhos.
Como posso dizer ao meu interceptador para adicionar condicionalmente apenas a esses métodos? Posso até dividir serviços como um serviço para cabeçalhos e um sem cabeçalhos ou um para cabeçalhos diferentes e outro para diferentes.
Provedores NgModule
{
provide: HTTP_INTERCEPTORS,
useClass: AuthInterceptor,
multi: true,
},{
provide: HTTP_INTERCEPTORS,
useClass: AngularInterceptor,
multi: true,
}
MyInterceptors
@Injectable()
export class AuthInterceptor implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
const authReq = req.clone({headers: req.headers.set('X-Auth-Token', "-------------------------")});
return next.handle(authReq);
}
}
@Injectable()
export class AngularInterceptor implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(req).do(event => {}, err => {
if(err instanceof HttpErrorResponse){
console.log("Error Caught By Interceptor");
//Observable.throw(err);
}
});
}
}