Ionic 2:在http请求中获取响应的标头

时间:2016-12-30 10:35:22

标签: javascript http angular header ionic2

当我在Ionic 2 / Angular 2中请求带有http的API时,我希望获得有关响应的一些信息。 信息如:响应时间,响应大小......等等。

我使用此代码:

let url : "[myUrl]";
this.http.get(url).map(res => res.json()).subscribe(res => {
    console.log(res);
});

我想获得响应标题。

有人知道怎么做吗? :)

2 个答案:

答案 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);
});
相关问题