求一个简单的ng2 http请求方法?

小白入门,求一个简单的ng2 http请求方法

希望能把模块和引入变量都给我列举出来,谢谢谢谢

阅读 2.1k
1 个回答
import { Observable } from 'rxjs/Observable';
import { Injectable } from '@angular/core';
import { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpResponse } from '@angular/common/http';
import 'rxjs/add/observable/throw';
import 'rxjs/add/operator/do';
import 'rxjs/add/operator/catch';
import { environment } from '../../environments/environment';

@Injectable()
export class DemoHttpInterceptor implements HttpInterceptor {
    constructor() {}

    public intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<Result<any>>> {
        req = req.clone({
            url: `${environment.base}${req.url}`
        });
        // 记录请求时间
        const started = Date.now();
        // 返回下一个中间件做更多处理
        return next
            .handle(req)
            .do((event: HttpEvent<any>) => {
                if (event instanceof HttpResponse) {
                    // 打印请求耗时
                    const elapsed = Date.now() - started;
                    console.log(`Request for '${req.urlWithParams}' took ${elapsed} ms.`);
                }
            })
            .catch((res: HttpResponse<any>) => {
                switch (res.status) {
                    case 401:
                        break;
                    case 404:
                        break;
                    case 500:
                    case 502:
                        break;
                }
                // 抛出错误结束请求
                return Observable.throw(res);
            });
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进