我对TypeScript和Angular很陌生。我有http拦截器:
export class HttpTokenInterceptor implements HttpInterceptor {
constructor() { }
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
const headersConfig = {
'Content-Type': 'application/json',
'Accept': 'application/json'
};
headersConfig['TEST'] = `TEST`;
const request = req.clone({ setHeaders: headersConfig });
return next.handle(request);
}
}
当我通过HttpClient从'@ angular / common / http'let resp = await this.http.get('http://localhost').toPromise();
发送GET请求时,可以在标头中看到我的TEST标头项。
我还使用autorest为我的休息服务(@ microsoft.azure / autorest-core:2.0.4302)生成TypeScript客户端,并且当我调用生成客户端自定义TEST标头的任何方法时,都不会添加到查询中。 />
我以为AutoRest也会通过应该由HttpInterceptor
处理的同一HttpClient生成HTTP查询。
也许我在做这件事是完全错误的,它应该以这种方式工作吗?还是有办法拦截AutoRest生成的代码发出的HTTP请求?