繁体   English   中英

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

[英]Ionic 2 : Get the header of a response in http request

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

我使用此代码:

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

我想获取响应头。

有人知道该怎么做吗? :)

this.http.get(url).map(res => {
    console.log(res.headers); // Print http header
    return res.json();
}).subscribe(res => {
    console.log(res);
});

Angular Http请求返回一个Observable ,其中包含服务器已传递的所有信息。 因此,您可以从响应中以res.headers访问headers 要获取您可以使用的响应主体的大小,

res.headers.get('Content-Length')

假设这出现在标题中。 因此,它取决于响应携带的信息,而不是角度提供的信息。

响应时间信息取决于您要查找的内容。 对于node.js服务器响应时间,可以使用包。 然后作为响应,可以得到response time

res.headers.get('X-Response-Time')

如果您需要总响应时间(包括网络延迟),则可以使用JavaScript计时器并查找请求和响应之间的时间差。

因此,您要查找的信息主要取决于服务器的响应,而不是角度的。 并且要注意浏览器中的CORS (响应头中的Access-Control-Expose-Headers )。 您可以在此处了解有关标题的更多信息。 希望能帮助到你。

您可以。 在map函数中,您可以获得有关HTTP调用的所有信息。 您可以对结果执行任何操作(我仅添加了console.log)

this.http.get(url).map(res => {
    console.log(res); // Print http details
    return res.json();
}).subscribe(res => {
    console.log(res);
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM