在angular中我們可以將http請求封裝成服務,在組件中引入該服務,
就可以實現前后端的數據請求。
具體實現:
1、ng generate service app
在app根目錄下生成app.service.ts的文件,里面基本配置項已經生成。
2、引入Injectable注入模塊,同時引入http模塊
import { Injectable } from '@angular/core’
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
加上providedIn: ‘root’,自動將服務加入到跟模塊的providers中,這樣該服務就可以在應用中的任何地方使用
3、構造函數中聲明http的私有屬性,將httpClient注入到http中
constructor (
private $http: HttpClient
){}
httpParams類可以設置請求參數
具體設置:
let params = new HttpParams();
params=params.set(key, value);
httpHeader類用來設置請求頭
具體設置:
let headers = new HttpHeaders().set("Content-Type", "application/json");
http的Request方法,執行請求並返回Observable對象(類似於promise,處理異步編程的解決方案),最后直接調用Observable.subscribe方法處理結果。
例如:
this.$http.request('get', url, {params: params, headers: headers});
request方法的傳參官方說明,可以針對post,get等做統一封裝。