【发布时间】:2020-05-02 22:00:08
【问题描述】:
我正在使用 angular 9 和拦截器...我使用的 API 加密 AES 中的 JSON 响应,当 API 响应时,我需要解密 angular 9 中的响应...我需要得到原始响应,但我看不到这样做的方法……角度 9 中的拦截器看起来不允许我这样做。我所做的是:
import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { map, tap, catchError, filter, scan } from 'rxjs/operators';
@Injectable({
providedIn: 'root'
})
export class ResponseInterceptor implements HttpInterceptor {
constructor() {}
intercept(
req: HttpRequest<any>,
next: HttpHandler
): Observable<HttpEvent<any>> {
return next.handle(req).pipe(
tap(evt => {
if (evt instanceof HttpResponse) {
console.log(evt);
}
}));
}
}
API 响应是:
kVwKXPYoRTPNZVv0X6pCWA9cpj7CqGV1h4zvI8X4F47FIJpTwLAP497JquiC+t95skz9HSdUJfizjPz+7jokcxUuW1dUdP8/MTp+Gn0TxPHTF+o6gUFj3sZJQGESMolINa0vjuvaHogiIcdn0XO6mdeDgD6AIOqqgvOUM2EYwcjzHXC3Ag8wL0ybeSMZB7j3XFmcfO97EohLM2yPBvwqeO0a8Dqzsn+DE5VXNOdcK8ArzXbXe8eARQl+vajGU6JuFsSsSU+cNil2AQHemyzknl02MWL7nIAps4SgynpGRw4z0IIhE2EbJANj5WzoxvOHNbGYPjkdPezO91CKeWsdZdCcDcJeJqdclvuntXRnkZVHTB/zARgiYLREHQ/eO5/5W25JR3En3+B3yIyoXI+W70fgLOZofSPYK6yUrkO0nZoAEdFGPcvOVx9eaQraDjGLG7JrnpRpXqscW8sFpaNvR2Cfay8gRJcscGDZlsSlhNMce6r/2WwDhQx29Dkvt2V+dBb4obrHTptqdCcq+uKnir/2cTUIOm03anZWU2c8u3WFxAalYbISGZrH6HySE/4ncP5y7Cm5ziAxDFLP4c4La1yKMKsFmBEfmzzdhgq8gGE6M3UPpLdaCF2yc4ddpJ7+l5QBT2pXIKQcNUraGbyD35hoB5AKyLfxTGd8wW2qVGe4RrrUXs5GhrZRZk0BwEFYG/kpQmGUvJ0hCA6lzUypOnYzNOeJ5s4XmprFhI9qIZPUoC/JroCnlw/+O4MN9cYI96RMvBICoL4+01c+y+ykppFP48kmKgk4+42ZFFC8mHg55rq9hTjJk5TKzq/N7Np2
当执行响应时,evt 变量类型为type,值为 0。任何建议???
拦截器不允许我对响应应用加密,并突然尝试将其转换为 JSON。
【问题讨论】:
-
我不确定你在追求什么,但请看这里:stackoverflow.com/a/51587491/6513921
-
尝试克隆请求并将
responseType设置为'text'
标签: angular