RxJS HTTP-клиент: тип ответа для не JSON
Я не уверен, в чем здесь проблема. Я хотел бы сделать HTTP-запрос, который отвечает на двоичные данные (например, загрузка файла) вместо JSON.
import {HttpClient, HttpHeaders, HttpParams} from "@angular/common/http";
Эти строки в порядке - но ожидайте JSON.
let x = this.http.get <any> ("http://myhost", { responseType : 'json' });
let y = this.http.get <any> ("http://myhost");
Но мне нужно определить, чтобы ответ был не JSON.
let z = this.http.get <any> ("http://myhost", { responseType : 'string' });
Здесь у меня проблема с этим. Я тоже попробовал "блоб". Я всегда получаю машинописную ошибку во время компиляции.
Аргумент типа '{ responseType: "string"; }'нельзя назначить параметру типа'{ headers?: HttpHeaders | { [header: string]: строка | Строка []; }; наблюдать?: "тело"; params?: Ht...'. Типы свойства responseType несовместимы. Тип "string" не может быть назначен типу "json".
1 ответ
Если данные являются файлом, пожалуйста, используйте blob
, но вам нужно удалить общий аргумент. Использование:
his.http.get("http://myhost", { responseType : 'blob' });
Версия, которая использует дженерики, будет работать только с JSON, так как она предназначена для анализа ответа