Http
リクエストの前とレスポンスの後にいくつかの操作を行うなど、カスタム クラスでオーバーライドしたいHttpClient
のですが、プラットフォームの http クラスの代わりにそのクラスをインポートすることを覚えておく必要はありません。
「マルチ」プロバイダーを介してこれを試してみましたが、クリックすることはできません。
これが私のオーバーライドクラスです:
import {Injectable} from '@angular/core';
import {Http, Headers} from '@angular/http';
@Injectable()
export class HttpClient {
private http: Http;
constructor(http: Http) {
this.http = http;
}
get(url) {
let headers = new Headers();
doSomethingToHeader(headers);
return this.http.get(url, {
headers: headers
});
}
}
そして、これが私のmain.tsです
bootstrap(AppComponent, [
provide(HTTP_PROVIDERS, {useExisting: HTTP_PROVIDERS, multi: true}),
provide(HTTP_PROVIDERS, {useClass: HttpClient, multi: true})
]);
しかし、アプリで http.get() を呼び出そうとすると、
ORIGINAL EXCEPTION: No provider for Http!
何か案は?私はこれについて間違った方法で進んでいますか?
ありがとう!
アップデート
このブログ投稿を見つけました。Gunter が以下で説明していることをほぼ説明しています。私は彼の答えを受け入れています。