У меня есть приложение, которое вызывает API, который возвращает файлы и сжимает их в ZIP-файл.
Я создал свой собственный сервис, и он отлично работает.
return this.http.get(this.rootUrl + '/api/Files/DownloadFile?files=' + fileSelected + '&user=' + user, { responseType: 'blob' as 'json' }); // working ok
Здесь Ответ API - это объект BLOB-объекта, как и должно быть.
Но когда я пытаюсь сделать то же самое, используя сгенерированный сервис, он больше не работает.
let req = new HttpRequest<any>(
'GET',
this.rootUrl + `/api/Files/DownloadFile`,
__body,
{
headers: __headers,
params: __params,
responseType: 'text'
}
); // not working ok
Сервис возвращает мне значение NULL, однако в инспекторе chrome в ответе на вызов API он показывает странные символы.
this.filesService.DownloadFile({"files": ids, "user": this.user}).subscribe(
data => {
console.log(data); // data value is null but in the response I see strange characters
},
err => {
console.log(err);
}
);
Это нормально, поскольку responseType службы swagger имеет значение "text", я пытался вручную изменить contentType на «blob» (спецификации swagger) или «blob as json» (angular 5), но он не работал нормально.
Возможно ли это решить с Angular используя сервис, сгенерированный swagger или я должен касаться API? Спасибо