2016-09-27 5 views
4

Как настроить и сделать запрос https с угловым 2? Не удалось найти никаких ресурсов. Можете ли вы кого-нибудь помочь мне здесь? Спасибо.Угловой запрос 2 HTTPS

+2

То же самое, как вы могли бы сделать с HTTP. Что заставило вас думать, что HTTPS нуждается в особом лечении? – estus

+0

https://angular.io/docs/ts/latest/guide/server-communication.html Просто добавьте дополнительные 's' к URL-адресу, который вы извлекаете. –

+0

Спасибо, ребята, имели небольшую путаницу. –

ответ

-2

я нашел одно решение для вас, это является основным создания запроса HTTP

import {Injectable} from '@angular/core'; 
import {Http, URLSearchParams} from '@angular/http'; 
import { Observable }  from 'rxjs/Observable'; 

@Injectable() 
export class WikipediaService { 
    constructor(private http: Http) { 
    } 

    search(term: string) { 
    let wikiUrl = 'http://en.wikipedia.org/w/api.php'; 
    let params = new URLSearchParams(); 
    params.set('search', term); // the user's search value 
    params.set('action', 'opensearch'); 
    params.set('format', 'json'); 
    params.set('callback', 'JSONP_CALLBACK'); 
    // TODO: Add error handling 
    return this.http 
     .get(wikiUrl, {search: params}) 
     .map(response => <string[]> response.json()[1]) 
     .catch(this.errorHandler); 
    } 

    private errorHandler(error: any) { 
    let errMsg = (error.message) ? error.message : 
     error.status ? `${error.status} - ${error.statusText}` : 'Server Error'; 
    console.log(errMsg); 
    return Observable.throw(errMsg); 
    } 
} 

пожалуйста посмотрите внимательно на search() он звонит википедии обслуживание.

  1. Сначала необходимо импортировать Http из '@angular/http' модуль.
  2. чем передать этот объект Http в конструкторе службы, как этот constructor(private http: Http)
  3. чем использовать эту строку кода, чтобы сделать GET просьбой об return this.Http .get(wikiUrl, {search: params}) .map(response => <string[]> response.json()[1]) .catch(this.errorHandler);
+0

jsonp не является http и не рекомендуется использовать – Phil

+0

да, он работал Jsonp, когда я разместил этот ответ, теперь я изменил свой ответ, пожалуйста, проверьте его. @Фил –

0

короткий ответ, добавьте это в верхней части вашего page.ts:

import {Http} from '@angular/http'; 

затем внутри вашей страницы класса (ниже @component), в конструкторе, добавьте 'публичный HTTP: Http', как это:

constructor(public http:Http, public navCtrl: NavController, public navParams: NavParams) {} 

затем вне вашего конструктора (внутри класса страницы), сделать функцию запроса HTTP, как это:

httprequest(url) { 
     this.http.request(url).map(res => JSON.parse(res['_body'])); 
     } 

затем использовать его в любом месте в пределах вашего класса страницы, как это:

this.httprequest('http://your_request_url').subscribe(yourdata=>{ 
console.log('you have your data: '+JSON.stringify(yourdata)); 
}); 

* вам не нужен JSON.parse, если это не данные JSON. Просто res ['_ body'] - это место, где вы получаете свои данные.

0

Просто убедитесь, что URL-адрес запроса, который вы передаете в параметры, - https.

Если вы используете полный путь, то это легко, вы можете указать https, I.E. 'https://request.url.com'.

Если это относительный путь к вашему приложению, например «/ api/some/data», ваше приложение должно быть надежно размещено и достигнуто с помощью соединения https.

1

Это так просто попробуйте это: -

import { Http, Headers } from '@angular/Http'; 

export class service{ 
    constructor(private http:Http){ 
    let headers = new Headers({ 'Content-Type': 'application/json' }); 
    this.http.post(requestUrl,headers,body) 
      .map(val => val.json()) 
      .subscribe(data => console.log(data)) 
} 
} 
0

Этот ответ немного поздно, но для людей, просто ищут его, это может быть полезно.

С последней версией Угловая вы можете использовать http interceptor, чтобы сделать это, как показано в angular docs