当我在Ionic 2 / Angular 2中请求带有http的API时,我希望获得有关响应的一些信息。 信息如:响应时间,响应大小......等等。
我使用此代码:
let url : "[myUrl]";
this.http.get(url).map(res => res.json()).subscribe(res => {
console.log(res);
});
我想获得响应标题。
有人知道怎么做吗? :)
答案 0 :(得分:3)
this.http.get(url).map(res => {
console.log(res.headers); // Print http header
return res.json();
}).subscribe(res => {
console.log(res);
});
Angular Http
请求返回Observable
,其中包含服务器已通过的所有信息。因此,您可以通过headers
从响应中访问res.headers
。要获得可以使用的响应主体的大小,
res.headers.get('Content-Length')
假设标题中存在此内容。因此,它取决于响应所携带的信息而不是角度所提供的信息。
响应时间信息取决于您的具体目标。对于node.js
中的服务器响应时间,您可以使用this包。然后作为回应,可以使用
response time
res.headers.get('X-Response-Time')
如果您想要总响应时间(包括网络延迟),您将使用JavaScript
计时器并找到请求和响应之间的时差。
因此,您正在寻找的信息主要依赖于服务器响应而不是角度。并注意浏览器中的CORS
(响应标头中为Access-Control-Expose-Headers
)。您可以详细了解标题here。希望它有所帮助。
答案 1 :(得分:1)
你可以。在map函数中,您可以获得有关HTTP调用的所有信息。你可以用结果做任何你想做的事情(我只添加了一个console.log)
this.http.get(url).map(res => {
console.log(res); // Print http details
return res.json();
}).subscribe(res => {
console.log(res);
});