嗨,Angular 新手,我面临着获取 HTTP 状态代码的问题,该代码位于 HTTP 模块中,我可以使用轻松获取响应代码响应状态,但是当我使用HttpClient
模块我无法获取response.status,它显示找不到状态。
那么,我怎样才能使用response.statusHttpClient
模块输入Angular 4&5
。请帮忙。
休息提供者:-
@Injectable()
export class RestProvider {
private apiUrl = 'https://restcountries.eu/rest/v2/al';
constructor(public http: HttpClient) {
console.log('Hello RestProvider Provider');
}
getCountries(): Observable<{}> {
return this.http.get(this.apiUrl).pipe(
map(this.extractData),
catchError(this.handleError)
);
}
private extractData(res: Response) {
let body = res;
return body || { };
}
private handleError (error: Response | any) {
let errMsg: string;
if (error instanceof Response) {
const err = error || '';
errMsg = `${error.status} - ${error.statusText || ''} ${err}`;
} else {
errMsg = error.message ? error.message : error.toString();
}
console.error(errMsg);
return Observable.throw(errMsg);
}
}
主页:
export class HomePage {
responseStatus: number;
countries: any;
errorMessage: string;
constructor(public navCtrl: NavController, public navParams: NavParams, public rest: RestProvider) {
}
ionViewDidLoad() {
this.getCountries();
}
getCountries() {
this.rest.getCountries().subscribe(res =>{
this.countries=res;
console("status code--->"+res.status)
},
err=>{
console("status code--->"+err.status)
})
}
}
Add observe : 'response'
在标题选项中http.get
方法就像
getCountries(): Observable<{}> {
return this.http.get(this.apiUrl,{observe : 'response'}).pipe(
map(this.extractData),
catchError(this.handleError)
);
}
并订阅 get() 方法来获取主页中您想要的任何响应状态,就像您所做的那样
getCountries() {
this.rest.getCountries().subscribe(
res => { this.countries=res;
console("status code--->"+res.status)
},
err=>{
console("status code--->"+err.status)
})
},
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)