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, так как она предназначена для анализа ответа

Другие вопросы по тегам