如何从AxiosResponse-Observable获取标题?

kiz8lqtg  于 2022-11-05  发布在  iOS
关注(0)|答案(2)|浏览(144)

使用NestJS,Axios返回一个Observable<AxiosResponse>
如何获取GET或HEAD请求的头文件?
假设我发出一个HEAD请求:

import { HttpService } from '@nestjs/axios';

const observable = this.httpService.head(uri);

如何从结果中获取标头?

更新日期:

我找到了一个很好的解决方法,它只需要一行代码。
还有另一个库https,它的功能更强大:

import http from "https";

await http.request(uri, { method: 'HEAD' }, (res) => {
  console.log(res.headers);
}).on('error', (err) => {
  console.error(err);
}).end();
lb3vh1jj

lb3vh1jj1#

回应的信头可在具有headers属性的subscribe回呼中取得。

this.httpService.head(uri).subscribe(res => {
    console.log(res.headers)
});

Playground

qxgroojn

qxgroojn2#

根据https://github.com/axios/axios#request-config:
对于请求标头,您应该使用类似以下的内容:

this.httpService.axiosRef.interceptors.request.use(function (config) {
    // Do something before request is sent
console.log(config);
    return config;
  }, function (error) {
    // Do something with request error
    return Promise.reject(error);
  });

您应该使用它onModuleInit(以防止一次工作几个拦截器)
您也可以在此答案中制作自己的模块:https://stackoverflow.com/a/72543771/4546382
对于响应头,您可以只使用response.headers

相关问题