如何使用httpclient从angular 5中的后端获取gzip数据

如何使用httpclient从angular 5中的后端获取gzip数据,angular,angular5,angular-httpclient,Angular,Angular5,Angular Httpclient,我正在尝试从后端获取压缩文件。请按以下方式查找httpclient的代码: 我尝试了标题中的多个选项,并使用不同的选项添加内容类型。但无法拿出准确的模板。我在AngularAPI中找不到任何与从服务器获取压缩数据相关的内容。请让我知道是否有人会提出类似的问题 getSpecialHeaders() { return new HttpHeaders({ 'Content-Encoding': 'gzip', 'specialHeader': '',

我正在尝试从后端获取压缩文件。请按以下方式查找httpclient的代码:

我尝试了标题中的多个选项,并使用不同的选项添加内容类型。但无法拿出准确的模板。我在AngularAPI中找不到任何与从服务器获取压缩数据相关的内容。请让我知道是否有人会提出类似的问题

getSpecialHeaders() {
    return new HttpHeaders({
         'Content-Encoding': 'gzip',
         'specialHeader': '',
         'Content-Type': 'gzip'
    });
}

getAllUnitsReport() {
 //Function to get the gzip data
const headersSpl = this.getSpecialHeaders();
//httpoptions with different options tried in content-type and accept encoding
const httpOptions = {
  headers : headersSpl };
return this.httpClient.get(envConfig.appURL.assetAdoption, httpOptions)
  .catch((error) => {
    return Observable.of(error);
  });}
http调用成功后,我收到如下错误消息:

的Http失败响应(未知url):0未知错误


内容编码
头是服务器提供的响应头

通常,客户端提供一个
Accept Encoding
头来指定要请求的内容编码

例如:
接受编码:gzip,deflate

请参阅上的MDN

但是,这个特定的头被标记为一个,这意味着它不能由在浏览器中执行的Javascript以编程方式设置(但是仍然在节点中工作)


大多数浏览器会自动添加一个包含其支持的所有内容编码的
Accept Encoding
标题。

浏览器不允许我设置Accept Encoding。这给了我错误:r拒绝设置不安全的标题“接受编码”,这是因为您的浏览器负责设置此标题(我已更新我的答案),谢谢您的回复。。在Browser中有其他解决此问题的方法吗?您的实际问题是什么?你没有在后端进行gzip压缩吗?尝试查看网络请求,并查看您正在发送和接收哪些头。后端可能配置不正确