我想知道哪一個用來構建模擬Web服務來測試Angular程序?角度4中的HTTP和HTTPClient之間的區別?
回答
如果你使用4.3.x版角及以上使用來自HttpClientModule
的HttpClient
類:
import { HttpClientModule } from '@angular/common/http';
@NgModule({
imports: [
BrowserModule,
HttpClientModule
],
...
class MyService() {
constructor(http: HttpClient) {...}
這是一個從@angular/http
模塊的http
的升級版具有以下改進:
- 攔截器允許中間件邏輯插入流水線
- 不可變的請求/響應ob jects
- 兩個要求上傳和響應進度事件下載
您可以瞭解它是如何工作的Insider’s guide into interceptors and HttpClient mechanics in Angular。
- 類型化,同步響應體訪問,包括JSON體類型
- JSON載體是假定默認和不再需要顯式地解析
- 後請求驗證&平齊基於測試框架
繼續前進舊的http客戶端將被棄用。這裏是鏈接到commit message和the official docs。
另外要注意的是舊的HTTP使用Http
類令牌,而不是新的HttpClient
注:
import { HttpModule } from '@angular/http';
@NgModule({
imports: [
BrowserModule,
HttpModule
],
...
class MyService() {
constructor(http: Http) {...}
此外,新HttpClient
似乎需要在運行時tslib
,所以你必須安裝它npm i tslib
和更新system.config.js
如果你使用SystemJS
:
map: {
...
'tslib': 'npm:tslib/tslib.js',
而你需要,如果你使用SystemJS添加另一個映射:
'@angular/common/http': 'npm:@angular/common/bundles/common-http.umd.js',
我想導入HttpClientModule。但'@ angular/common/http'不存在於使用「npm start」命令安裝的node_modules目錄中。你能幫我嗎? –
@DheerajKumar,你使用的是哪個版本?它只在4.3.0以上可用 –
我從git下載了角度快速啓動。和在package.json中,「@ angular/common」:「^ 4.3.0」存在。但沒有@ angular/common/http。 –
不想重複,只是在其他的方式總結:
-
從JSON的一個對象
- 自動轉換
- 響應類型定義
- 事件引發
- 標題的簡化語法
- 攔截器
我寫了一篇文章,介紹了舊的「http」和新的「HttpClient」之間的區別。目標是以最簡單的方式解釋它。
- 1. 角度2中的渲染器和ElementRef之間的區別
- 2. php 4和php 5之間的區別?
- 3. Angular 4 http帶參數 - 搜索和參數之間的區別
- 4. 「/ page」和「http://www.domain.com/page」之間的區別
- 5. file:// android_assets /和http://someurl.com/之間的區別?
- 6. 之間的區別!和!在角
- 7. Laravel 4中的Input :: flash()和Session :: flash()之間的區別4
- 8. http 304和404之間的任何表現之間的區別?
- 9. 角度:$路由器和$ rootRouter之間的區別?
- 10. 角度2模塊和Javascript ES6模塊之間的區別
- 11. ng模型和角度表達式之間的區別 - {{}}
- 12. 從SOA角度來看Registry和Repository之間有什麼區別?
- 13. http://java.sun.com/jsp/jstl/core和http://java.sun.com/jstl/core之間的區別
- 14. HTTP servlet和SOAP over HTTP之間的區別是什麼?
- 15. HTTP查詢參數和HTTP表單參數之間的區別?
- 16. 兩個http請求之間的區別
- 17. JRMP vs HTTP之間的區別
- 18. 服務之間的角度4通信
- 19. Flex中的RemotingServices,WebServices和HTTP之間的區別
- 20. HTML中的http://和//之間的區別是什麼
- 21. '+ ='和'= +'之間的區別?
- 22. {!!之間的區別!!}和{{}}
- 23. ==和case之間的區別?
- 24. '#','%'和'$'之間的區別
- 25. | =和^ = css之間的區別
- 26. 「%〜dp0」和「。\」之間的區別?
- 27. .eq之間的區別。和==
- 28. ==和.equals()之間的區別?
- 29. `%in%`和`==`之間的區別
- 30. Swift 4中private和fileprivate之間的區別
[* 「的HttpClient是現有的角HTTP API,它存在 它沿着在一個單獨的封裝的進化...」 *](https://github.com/angular/angular /提交/ 37797e2)。 – jonrsharpe
昨天我在博客上寫了一些新功能:http://blog.jonrshar.pe/2017/Jul/15/angular-http-client.html – jonrsharpe
https://angular.io/guide/http – yurzui