我想知道哪一個用來構建模擬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. http://和http://之間的區別www
- 2. 採樣器類型(HttpClient 4,HttpClient 3.1和Java)之間的區別是什麼
- 3. 角度2中的渲染器和ElementRef之間的區別
- 4. Angular 4 http帶參數 - 搜索和參數之間的區別
- 5. ASP.NET MVC 3和4之間的區別?
- 6. php 4和php 5之間的區別?
- 7. file:// android_assets /和http://someurl.com/之間的區別?
- 8. 「/ page」和「http://www.domain.com/page」之間的區別
- 9. 之間的區別!和!在角
- 10. 角度上的onLoad和ng-init之間的區別
- 11. Laravel 4中的Input :: flash()和Session :: flash()之間的區別4
- 12. http 304和404之間的任何表現之間的區別?
- 13. 角度2模塊和Javascript ES6模塊之間的區別
- 14. 從任何角度來看,++ i和i + = 1之間的區別
- 15. ng模型和角度表達式之間的區別 - {{}}
- 16. 角度提交和ngSubmit事件之間的區別?
- 17. 角度:$路由器和$ rootRouter之間的區別?
- 18. jQuery mobile:數據角色和角色/類別之間的區別
- 19. ASP.NET 4中'(單引號)和「(雙引號)之間的區別4
- 20. Jmeter中HTTPclient 3.1和HTTP客戶端4之間的響應時間差異
- 21. 角度1.4.3中的$ http longhand和shorthand有什麼區別?
- 22. 之間的〜/和的區別../
- 23. const int&x = 4和const int x = 4之間的區別
- 24. OpenGL ES 2.0和OpenGL 4之間的區別4
- 25. JUnit 3和JUnit 4之間的區別4
- 26. 從SOA角度來看Registry和Repository之間有什麼區別?
- 27. http://java.sun.com/jsp/jstl/core和http://java.sun.com/jstl/core之間的區別
- 28. HTTP查詢參數和HTTP表單參數之間的區別?
- 29. HTTP servlet和SOAP over HTTP之間的區別是什麼?
- 30. HTTP方法之間的區別
[* 「的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