如何使用httpclient从角度为5的后端获取gzip数据

问题描述 投票:0回答:1

我正在尝试从后端获取压缩文件。请找到httpclient的代码,如下所示:

我在标题中尝试了多个选项,使用不同的选项添加内容类型。但是无法提出确切的模板。我找不到任何相关的东西从角度api中获取服务器的压缩数据。如果有人提出类似的问题,请告诉我。

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失败响应:0未知错误

angular angular5 angular-httpclient
1个回答
0
投票

Content-Encoding标头是服务器提供的响应标头。

通常客户端提供Accept-Encoding标头来指定您要请求的内容编码。

例如:Accept-Encoding: gzip, deflate

请参阅Compressing with gzip上的MDN

但是,此特定标头被标记为forbidden header,这意味着它无法通过在浏览器中执行的Javascript以编程方式设置(但仍然可以在Node中运行)。

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

© www.soinside.com 2019 - 2024. All rights reserved.