Angular 5 HttpClient与以前的Http相比有哪些优势?

Angular 5 HttpClient与以前的Http相比有哪些优势?,angular,httpclient,Angular,Httpclient,我读过官方的升级指南,上面写着“因为HttpClient得到了广泛的采用,我们决定……”但是这个HttpClient带来了什么真正的好处呢? 我曾考虑尝试一下,但中途感到困惑,因为我不知道升级后这些产品会发生什么: 从'@angular/Http'导入{Http,Headers,RequestOptions,ResponseContentType} 我试图在新客户机中找到“匹配项”: 从“@angular/common/http”导入{HttpClient,HttpParams,HttpHead

我读过官方的升级指南,上面写着“因为HttpClient得到了广泛的采用,我们决定……”但是这个HttpClient带来了什么真正的好处呢?

我曾考虑尝试一下,但中途感到困惑,因为我不知道升级后这些产品会发生什么:

从'@angular/Http'导入{Http,Headers,RequestOptions,ResponseContentType}

我试图在新客户机中找到“匹配项”: 从“@angular/common/http”导入{HttpClient,HttpParams,HttpHeaders}

但我不知道这些应该如何适当地“升级”,因为指南没有提到


那么第二个问题-我们如何处理那些其他http东西呢?

HttpClient接口与旧的http接口几乎没有变化。最大的区别是HttpClientModule对中间件(即http拦截器)有更好的支持

该功能的一些优点:

•   Strongly typed response body access
•   JSON assumed by default (no more need to do .map(t=>t.json())
•   Better support for interceptors as middleware
•   Immutable request/response objects
•   Progress events for request upload/response download
对于新的http客户机,直接使用http拦截器作为中间件组件

中间件模式的一些好处:

  • HTTP请求的全局错误处理
  • 全局重试机制(即重试3次)
  • 用于长时间运行操作的全局HTTP微调器

  • 例如,客户端代码(使用HttpClient)不需要担心错误处理、重试或可视等待组件—所有这些都在一个地方处理。

    也许这个答案仍然适用:可能重复的,那么我是否有机会了解第二个问题的一些内容—应该从旧方法迁移什么:头、响应类型?您仍然可以访问完整的HTTP通过
    this.http.get('…',{observe:'response'});
    非常感谢!我现在成功地将代码迁移到了HttpClient;)并使用了您的建议重新响应。事实上,它现在对我来说更干净了!;)