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

时间:2018-08-22 21:29:40

标签: angular typescript rxjs rxjs6

我不确定这是什么问题。我想做出一个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”。 我总是在编译时遇到打字错误。

  

“ {responseType:“ string”;类型的参数; }'不可分配给类型'{headers ?: HttpHeaders | {[header:string]:字符串|串[]; };观察?参数?:Ht ...'。     属性“ responseType”的类型不兼容。       类型'“ string”'不能分配给类型“” json“'。

1 个答案:

答案 0 :(得分:2)

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

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

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