import {Http, ConnectionBackend, RequestOptions, Request, RequestOptionsArgs, Response} from "angular2/http"; import {Observable} from "rxjs/Observable"; export class CustomHttp extends Http { constructor(backend:ConnectionBackend, defaultOptions:RequestOptions) { super(backend, defaultOptions) } request(url:string | Request, options?:RequestOptionsArgs):Observable { return super.request(url, options).catch((res: Response) => this.handleResponseError(res)); } get(url:string, options?:RequestOptionsArgs):Observable { return super.get(url, options).catch((res: Response) => this.handleResponseError(res)); } post(url:string, body:string, options?:RequestOptionsArgs):Observable { return super.post(url, body, options).catch((res: Response) => this.handleResponseError(res)) } put(url:string, body:string, options?:RequestOptionsArgs):Observable { return super.put(url, body, options).catch((res: Response) => this.handleResponseError(res)); } delete(url:string, options?:RequestOptionsArgs):Observable { return super.delete(url, options).catch((res: Response) => this.handleResponseError(res)); } patch(url:string, body:string, options?:RequestOptionsArgs):Observable { return super.patch(url, body, options).catch((res: Response) => this.handleResponseError(res)); } head(url:string, options?:RequestOptionsArgs):Observable { return super.head(url, options).catch((res: Response) => this.handleResponseError(res)); } private handleResponseError(res:Response) { console.log(res); if (res.status === 401) { // do something } else if (res.status === 500) { // do something } return Observable.throw(res); } }