Chciałbym wiedzieć, który z nich użyć do stworzenia fałszywej usługi sieci Web w celu przetestowania programu Angular?Różnica między HTTP a HTTPClient w kanciastym 4?
Odpowiedz
Użyj klasę HttpClient
z HttpClientModule
jeśli używasz kątowa 4.3.x oraz powyżej:
import { HttpClientModule } from '@angular/common/http';
@NgModule({
imports: [
BrowserModule,
HttpClientModule
],
...
class MyService() {
constructor(http: HttpClient) {...}
Jest to ulepszona wersja http
z modułem @angular/http
następujące ulepszenia:
- Interceptory umożliwiają wstawienie logiki oprogramowania pośredniego do potoku
- Niezmienne żądanie/odpowiedź ob przedmiot badania
- wydarzenia Progress zarówno dla wysyłania żądań i odpowiedzi pobierz
można przeczytać o tym, jak to działa w Insider’s guide into interceptors and HttpClient mechanics in Angular.
- wpisane, synchroniczny dostęp ciało odpowiedź, w tym wsparcie dla typów nadwozia JSON
- JSON jest założyć domyślna i nie musi być wyraźnie analizowany
- Post-prośba ramy badania oparte weryfikacja & równo
Idąc dalej stary klient HTTP będzie przestarzały. Oto linki do commit message i the official docs.
zapłacić również uwagę, że stary http wstrzyknięto używając Http
klasy tokenu zamiast nowego HttpClient
:
import { HttpModule } from '@angular/http';
@NgModule({
imports: [
BrowserModule,
HttpModule
],
...
class MyService() {
constructor(http: Http) {...}
Również nowy HttpClient
wydają się wymagać tslib
w czasie wykonywania, więc trzeba go zainstalować npm i tslib
i aktualizować system.config.js
jeśli używasz SystemJS
:
map: {
...
'tslib': 'npm:tslib/tslib.js',
A trzeba dodać kolejny mapowanie jeśli używasz SystemJS:
'@angular/common/http': 'npm:@angular/common/bundles/common-http.umd.js',
Próbuję zaimportować HttpClientModule. Ale "@kamular/common/http" nie występuje w katalogu node_modules, który został zainstalowany za pomocą polecenia "npm start". Możesz pomóc? –
@DheerajKumar, której wersji używasz? jest dostępny tylko w wersji 4.3.0 i wyższej niż –
Pobrałem kątowy szybki start z git. i In package.json, "@ kątowy/wspólny": "^ 4.3.0" jest obecny. ale nie ma @ angle/common/http. –
Nie chcemy być powtarzalne, ale po prostu podsumować w inny sposób:
- Automatyczna konwersja z formatu JSON do obiektu
- definicja typu odpowiedzi
- Zdarzenie wypalania
- Uproszczona składnia nagłówków
- Interceptory
Napisałem artykuł, w którym omówiłem różnicę między starym "http" a nowym "HttpClient". Celem było wyjaśnienie go w najprostszy możliwy sposób.
[* "HttpClient jest ewolucją istniejącego Kątowymi API HTTP, który istnieje obok niego w osobnym opakowaniu ..." *] (https://github.com/angular/angular/commit/37797e2). – jonrsharpe
Właściwie napisałem o niektórych nowych funkcjach na moim blogu: http://blog.jonrshar.pe/2017/Jul/15/angular-http-client.html – jonrsharpe
https://angular.io/guide/http – yurzui