2017-12-20 4 views
-1

HttpHeaders에서 헤더를 처리하여 HttpClient를 통해 http 요청에 헤더를 사용하는 방법을 파악하려고합니다.각도 5의 HttpHeaders에 헤더를 설정하는 방법

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 

헤더를 추가하는 특별한 방법이 있나요? 아니면 버그입니까?

+0

[이것을 확인하십시오] (https://github.com/angular/angular/issues/19044) –

답변

0

이 나를 위해 작동합니다

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가 나는 CONST에 출력을 지정하는 이유 인 HttpHeaders 객체를 반환

참고. 다만, 그 자체로 append를 실행하는 기존 _headers이 변경 될 것이라고 생각하고, 당신이 기대하는 결과를 제공하지 않습니다. 나는 HttpHeaders는 불변임을 확인했다.

EDIT : HttpHeaders docs : 지연 성 구문 분석이 포함 된 변경 불가능한 HTTP 헤더 집합.

관련 문제