如何在角度5 [重复]中将标题设置为HttpHeaders

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在角度5 [重复]中将标题设置为HttpHeaders相关的知识,希望对你有一定的参考价值。

我试图弄清楚如何处理HttpHeaders上的标头,以通过HttpClient将它们用于http请求。

const headers = new HttpHeaders();
headers.append('foo', 'bar');
headers.set('foo', 'bar');

console.log(headers.get('foo')) // null

它只能这样工作:

const headers = new HttpHeaders().set('foo', 'bar');
console.log(headers.get('foo')) // bar

有没有一种特殊的方法来添加标题?或者这是一个错误?

答案

这对我有用:

import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';

const url = `https://sampleapi.com`;

@Injectable()
export class BasicService {
  private _headers = new HttpHeaders().set('Content-Type', 'application/json');
  constructor(private httpClient: HttpClient) { }

  getWithHeader(): Observable<any> {
    const headers = this._headers.append('foo', 'Bar');
    return this.httpClient.get<any>(url, { headers : headers });
  }
}

这开始于一个私有变量,它使用set保存初始头文件集。然后在进行Http调用之前使用append添加其他标头。

请注意,append返回一个HttpHeaders对象,这就是我将输出分配给const的原因。只是单独运行append,认为现有的_headers将被更改,不会给你你可能期望的结果。我确实确认HttpHeaders是不可变的。

编辑:来自HttpHeaders文档:不可变的Http标头集,具有延迟解析。

以上是关于如何在角度5 [重复]中将标题设置为HttpHeaders的主要内容,如果未能解决你的问题,请参考以下文章

如何在角度7中将动态值设置为formControl

如何在Python中将字符串列表转换为字典列表[重复]

如何在php中将最小值和最大值设置为小数点后2位[重复]

如何在python中将列表拆分为没有重复元素的子集

在matplotlib中将y轴设置为从0到100 [重复]

如何在java中将字符串数组转换为int数组[重复]