[英]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.