我不确定这是什么问题。我想做出一个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“'。
答案 0 :(得分:2)
如果数据是文件,请使用blob
,但是您需要删除通用参数。使用:
his.http.get("http://myhost", { responseType : 'blob' });
采用泛型的版本仅适用于JSON,因为它旨在解析响应