RxJS HTTP-Client: not JSON 的响应类型

RxJS HTTP-Client: response type for not 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' });

这里我遇到了问题。我也试过 'blob'。 我总是在编译时遇到打字稿错误。

Argument of type '{ responseType: "string"; }' is not assignable to parameter of type '{ headers?: HttpHeaders | { [header: string]: string | string[]; }; observe?: "body"; params?: Ht...'. Types of property 'responseType' are incompatible. Type '"string"' is not assignable to type '"json"'.

如果数据是一个文件,请使用blob,但您需要删除通用参数。使用:

his.http.get("http://myhost", { responseType : 'blob' });

采用泛型的版本仅适用于 JSON,因为它旨在解析响应