为了从我们的Angular应用程序开始进行HTTP调用,我们需要从@angular/common/http
中导入 HTTP 模块。
import {HttpClientModule} from '@angular/common/http';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
HttpClientModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule {}
⚡️HttpClient 是 Angular2 HTTP 的升级版,在4.3版本引入。默认解析JSON,所以我们不需要再进行显式的解析。即我们不需要再使用以下代码:
http.get(url).map(res => res.json()).subscribe(...)
要发出HTTP请求,我们将使用Http服务。在本示例中,我们创建了一个SearchService
以与Spotify API进行交互。
我们通过HttpHeaders设置HTTP头,HttpParams设置请求参数
import { HttpClient, HttpParams } from "@angular/common/http";
import { Injectable } from '@angular/core';
import 'rxjs/add/operator/map';
@Injectable()
export class SearchService {
constructor(private http: HttpClient) {}
search(term: string) {
const params = new HttpParams()
.set('q', term)
.set('type', "artist");
return this.http
.get('https://api.spotify.com/v1/search',{params})
.map()
.subscribe()
}
}
这里我们做一个HTTP GET请求,它作为一个可观察者暴露给我们。 你会注意到.map
操作符被链接到.subscribe
。
除了get
,还有post
, put
,patch
和delete
方法,他们都返回observables。