HTTP和HTTPClient在angular度4之间的区别?

我想知道哪个用来构build一个模拟Web服务来testingAngular程序?

如果您使用的是Angular 4.3.x或更高版本,请使用HttpClient类:

 import { HttpClientModule } from '@angular/common/http'; @NgModule({ imports: [ BrowserModule, HttpClientModule ], ... class MyService() { constructor(http: HttpClient) {...} 

这是来自@angular/http模块的http升级版本,具有以下改进:

  • 键入同步响应正文访问,包括对JSON正文types的支持
  • JSON是一个假设的默认值,不再需要明确的parsing
  • 拦截器允许将中间件逻辑插入到stream水线中
  • 不可变的请求/响应对象
  • 请求上传和响应下载的进度事件
  • 请求后validation和基于刷新的testing框架

前面的旧的http客户端将被弃用。 这里是提交信息和官方文档的链接。

另外请注意,旧的http是使用Http类标记而不是新的HttpClient注入的:

 import { HttpModule } from '@angular/http'; @NgModule({ imports: [ BrowserModule, HttpModule ], ... class MyService() { constructor(http: Http) {...} 

另外,新的HttpClient似乎在运行时需要tslib ,所以如果你使用的是SystemJS ,你必须安装npm i tslib并更新system.config.js

 map: { ... 'tslib': 'npm:tslib/tslib.js', 

如果您使用SystemJS,则需要添加另一个映射:

 '@angular/common/http': 'npm:@angular/common/bundles/common-http.umd.js',