当我在 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
,其中包含服务器传递的所有信息。因此,您可以从响应中访问 headers
作为 res.headers
。要获取您可以使用的响应主体的大小,
res.headers.get('Content-Length')
假设这存在于 header 中。因此,这取决于响应携带的信息,而不是 Angular 提供的信息。
响应时间信息取决于您要查找的内容。对于 node.js
中的服务器响应时间,您可以使用 this包裹。然后在响应中,响应时间
可以通过
res.headers.get('X-Response-Time')
如果您想要总响应时间(包括网络延迟),您将使用 JavaScript
计时器并找出请求和响应之间的时间差。
所以你要找的信息主要是靠服务器响应而不是angular。并注意浏览器中的 CORS
(响应 header 中的 Access-Control-Expose-Headers
)。您可以了解有关标题的更多信息 here .希望对您有所帮助。
关于javascript - ionic 2 : Get the header of a response in http request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41394756/