首页 > 解决方案 > nestjs 拦截和修改传出的 http 请求

问题描述

所以我很可能错过了什么或做错了什么。我有一个 NestJS 应用程序试图向外部 API 发出 http 请求。我希望能够拦截这个传出请求并在执行它之前修改它的标题。

我试过使用拦截器无济于事,传入的http请求被拦截,但传出的请求没有被拦截。任何建议或帮助将不胜感激。

标签: typescripthttpnestjs

解决方案


I had a similar problem modifying / adding response headers. Following code worked for me:

@Injectable()
export class TransformHeadersInterceptor implements NestInterceptor {
  intercept(
    context: ExecutionContext,
    call$: Observable<any>,
  ): Observable<any> {

    return call$.pipe(
            map((data) => {
                // pipe call to add / modify header(s) after remote method
                let req = context.switchToHttp().getRequest();
                req.res.header('x-api-key', 'pretty secure');
                return data;
            }),
        );
  }
}

推荐阅读