早上好,在一个Http post call中,我需要读取答案中的头和事件,以便在调用过程中管理一个进展.为了管理进展,我设置观察:'事件',它工作得很好.我需要设置观察。'response'来读取应答的头部.我该怎么做呢?
return this.http.post(ip + this.apiDownFile,JSON.stringify(paramObj),{
headers: {
Authorization: `Bearer ${token}`,
'Content-Type': 'application/json'
},
responseType: 'blob' as 'json',
reportProgress: true,
observe: 'events'
}).pipe(
map(risposta=>risposta)
)
你不需要额外观察响应.如果你观察 "事件",你可以达到响应,因为响应是你应该收到的事件的一部分。
如果你想对响应做一些事情,添加rxjs。tap
操作符,并检查该事件是否为HTTP响应。enum
角度给 HttpEventType
.
导入。
import { HttpEventType } from "@angular/common/http";
代码:
return this.http.post(ip + this.apiDownFile,JSON.stringify(paramObj),{
headers: {
Authorization: `Bearer ${token}`,
'Content-Type': 'application/json'
},
responseType: 'blob' as 'json',
reportProgress: true,
observe: 'events'
}).pipe(
map(risposta=>risposta),
tap(risposta => {
if(risposta === HttpEventType.Response) {
// do something
}
})
)