簡體   English   中英

在Angular2中發送帶有標頭的HTTP請求

[英]Sending an HTTP request with headers in Angular2

我正在嘗試構建一個連接到Twitter API的應用程序。 為此,我需要使用Angular2發送帶有一組標頭的http get請求。

請注意,以下卷曲請求成功(假設正確的鍵在適當的位置)。

這是我嘗試過的,唯一的問題是,使用以下實現,我無法傳遞必要的標頭。

想知道是否有人遇到過這種情況,並且對解決方法有任何建議嗎?

提前致謝

constructor(private _http: Http) {

}

getTwitterResponse() {
         return this._http.get('https://api.twitter.com/1.1/statuses/home_timeline.json')
            .map(res => res.text);
}

帶標頭的卷曲請求樣本(已刪除身份驗證密鑰)

 curl --get 'https://api.twitter.com/1.1/statuses/home_timeline.json' --header 'Authorization: OAuth oauth_consumer_key="123456", oauth_nonce="123456", oauth_signature="f%123456%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1475158916", oauth_token="123456", oauth_version="1.0"' --verbose

您可以將標頭添加到您的請求中,如下所示:

import { Headers, RequestOptions } from '@angular/http';    

getTwitterResponse() {

let headers = new Headers({ "Content-Type": "application/json" });
let options = new RequestOptions({ headers: headers });
let url = 'https://api.twitter.com/1.1/statuses/home_timeline.json';

     return this._http.get(url, options).map(res => res.text);
}

這里發生的情況的解釋: Http request get具有以下簽名:

get(url: string, options?: RequestOptionsArgs)

第二個參數是可選的,其類型為RequestOptionsArgs ,這是用於構造RequestOptions的接口,這意味着您可以傳遞RequestOptions作為第二個參數來get RequestOptionsArgs是具有以下屬性的接口:

export interface RequestOptionsArgs {
    url?: string;
    method?: string | RequestMethod;
    search?: string | URLSearchParams;
    headers?: Headers;
    body?: any;
    withCredentials?: boolean;
    responseType?: ResponseContentType;
}

所有屬性都是可選的,這就是為什么我們只能將headers傳遞給options 您可以使用任何所需的Content-Type更改Content-Type ,並且可以添加多個頭:

headers: Headers = new Headers({
    'First header': 'First value',
    'Second header': 'Second value',
    'Third header': 'Third value',
    'Fourth header': 'Fourth value'
});

您可以在以下鏈接上閱讀更多有關我剛剛談及的內容的信息:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM