2015-11-11 17 views
8

Köşeli 2 - Bir Http sözünü nasıl yazarım?Köşeli 2 - Başlığımda bir Http sözünü nasıl yazarım

http'yi içe aktarıyorum ve http başlığını auth jetonumla ayarlamak istiyorum. O zaman bir http almak istiyorum ve cevabı, buna cevap veren yönteme dönmek için bir söz vermek istiyorum.

Şimdiye kadar bu var:

import {Http, Headers} from "angular2/http"; 
import {EnvironmentService} from './environmentService'; 

export class AuthService { 
    private environmentService: EnvironmentService; 
    private http: Http; 
    private header: Headers; 

    contructor(_environmentService: EnvironmentService, _http: Http, _header: Headers){ 
     this.environmentService = _environmentService; 
     this.http = _http; 

     this.header.append('Authorization', '1234'); 
     this.header.append('Content-Type', 'application/json');  
    } 

    getSpotifyData =():Promise<Object> => { 
     return this.http 
      .get('http://ws.spotify.com/search/1/track.json?q=foo',    {headers:this.header}) 
      .map((response) => { 
      return response.json() 
      }) 
      .toPromise(); 
    } 

} 

peşin!

+2

Daha iyi anlaşılması için Kodu göster –

+0

Kod sadece – AngularM

cevap

11

Sen http.get yönteminin ikinci argümanı haline headers geçebilir ve bir Promise içine Observable dönüştürmek için .toPromise yöntemi kullanabilirsiniz.

export class AuthService { 
    // ... 

    testApiCall(): any { 
    return this.http 
     .get('http://localhost:3333/api/', { 
     headers: { 
      'Authorization': 'BearerTokenGoesHear' 
     } 
     }) 
     .map((response) => { 
     // some response manipulation 
     return response.json() 
     }) 
     .toPromise(); 
    } 
} 

this example'a bir bakın.

+0

yukarısına eklendi Merhaba, söylediklerimi yaptım ve ben tip komut dosyası derleyici hataları alıyorum. Şu anda bulunduğum yeri size göstermek için üstteki kodu güncelledim. Teşekkür ederiz – AngularM

+0

Sahip olduğunuz hataların ne olduğunu bilmiyorum. 'TestApiCall' türünün dönüş türünü 'any' olarak değiştirmeyi deneyin. Belki yardımcı olur. – alexpods