2016-06-15 2 views
4

API (API 2)를 사용하는 이온 2 앱이 있는데 API에서 JSON을 가져 오는 코드가 있는데, ID, 응용 프로그램 키와 ... 그 작동하지 않습니다하지만, 내가 헤더를 추가하려고 어떻게 ...이 주요 코드, 헤더로API에 헤더 추가 Http request, Angular 2, Ionic 2

import {Component} from '@angular/core'; 
import {NavController} from 'ionic-angular'; 
import {Http} from 'angular2/http'; 

@Component({ 
templateUrl: 'build/pages/latest-page/latest-page.html' 
}) 
export class LatestPage { 
static get parameters() { 
return [[NavController]]; 
} 

constructor(_navController, http) { 

this._navControler = _navController; 
this.http = http; 

this.http.get("https://twit.tv/api/v1.0/people/77").subscribe(data => { 
console.log("Got Data"); 
this.items = JSON.parse(data._body).people; 
}, error => { 
console.log("Error with Data"); 
}); 

} 

을 그대로 그리고 이것은이다

constructor(_navController, http) { 

this._navControler = _navController; 
this.http = http; 

var headers = new Headers(); 
headers.append('app-id', '0000'); 
headers.append('app-key', 'abc000abc'); 
headers.append('Accept', 'application/json '); 

this.http.get("https://twit.tv/api/v1.0/people/77"),{"Headers": headers}.subscribe (data => { 
console.log("Got Data"); 
this.items = JSON.parse(data._body).people; 
}, error => { 
console.log("Error with Data"); 
}); 

} 

아이디어가 있으십니까?

감사

답변

6

헤더는 당신이 당신의 코드에 구문 오류가 외에 두 번째 매개 변수 http.get()

인의 RequestOptions 내부 설정해야합니다. 요청 옵션 갔지의 두 번째 매개 변수 (URL, {}), 당신은 다음과 같이 썼다 : 명시 적 옵션을 요청 만들기} {, 갔지 (URL)

this.http.get("https://twit.tv/api/v1.0/people/77",{"Headers": headers}).subscribe (data => { 
 
console.log("Got Data"); 
 
this.items = JSON.parse(data._body).people; 
 
}, error => { 
 
console.log("Error with Data"); 
 
});

합니다. 난,

constructor(_navController, http) { 
 
    
 
/*this isn't necessary, _navController and http are already available for "this. "*/ 
 
    this._navControler = _navController; 
 
    this.http = http; 
 
    
 
    let opt: RequestOptions 
 
    let myHeaders: Headers = new Headers 
 
    myHeaders.set('app-id', 'c2549df0'); 
 
    myHeaders.append('app-key', 'a2d31ce2ecb3c46739b7b0ebb1b45a8b'); 
 
    myHeaders.append('Content-type', 'application/json') 
 
    
 
    opt = new RequestOptions({ 
 
    headers: myHeaders 
 
    }) 
 
    
 
    this.http.get("https://twit.tv/api/v1.0/people/77",opt).subscribe (data => { 
 
    console.log("Got Data"); 
 
    this.items = JSON.parse(data._body).people; 
 
    
 
    }, error => { 
 
    console.log("Error with Data"); 
 
    }); 
 

 
}

+0

그래서 세 가지 헤더를 추가 :

let opt: RequestOptions let myHeaders: Headers = new Headers myHeaders.set('Content-type', 'application/json') opt = new RequestOptions({ headers: myHeaders }) _http.get(url, opt).

일부 오해 후, 나는 당신이 내 제안을 자신의 코드있어 여기에 떠날거야 myHeaders.set ('Content-type', 'application/json') 행을 세 번 실행합니까? – CarlRyds

+0

메신저 가져 오기 ... SyntaxError : /Users/Carl/TwitCasts/app/pages/latest-page/latest-page.js : 파일 구문 분석 중에 예기치 않은 토큰 (18:10) :/Users/Carl/TwitCasts/app/pages/latest-page/latest-page.js – CarlRyds

+0

여러 헤더를 추가하려면 headers.append()를 사용하십시오. –