Как настроить и сделать запрос https с угловым 2? Не удалось найти никаких ресурсов. Можете ли вы кого-нибудь помочь мне здесь? Спасибо.Угловой запрос 2 HTTPS
ответ
я нашел одно решение для вас, это является основным создания запроса 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()
он звонит википедии обслуживание.
- Сначала необходимо импортировать
Http
из'@angular/http'
модуль. - чем передать этот объект Http в конструкторе службы, как этот
constructor(private http: Http)
- чем использовать эту строку кода, чтобы сделать
GET
просьбой обreturn this.Http .get(wikiUrl, {search: params}) .map(response => <string[]> response.json()[1]) .catch(this.errorHandler);
jsonp не является http и не рекомендуется использовать – Phil
да, он работал Jsonp, когда я разместил этот ответ, теперь я изменил свой ответ, пожалуйста, проверьте его. @Фил –
короткий ответ, добавьте это в верхней части вашего 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'] - это место, где вы получаете свои данные.
Просто убедитесь, что URL-адрес запроса, который вы передаете в параметры, - https.
Если вы используете полный путь, то это легко, вы можете указать https, I.E. 'https://request.url.com'.
Если это относительный путь к вашему приложению, например «/ api/some/data», ваше приложение должно быть надежно размещено и достигнуто с помощью соединения https.
Это так просто попробуйте это: -
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))
}
}
Этот ответ немного поздно, но для людей, просто ищут его, это может быть полезно.
С последней версией Угловая вы можете использовать http interceptor
, чтобы сделать это, как показано в angular docs
То же самое, как вы могли бы сделать с HTTP. Что заставило вас думать, что HTTPS нуждается в особом лечении? – estus
https://angular.io/docs/ts/latest/guide/server-communication.html Просто добавьте дополнительные 's' к URL-адресу, который вы извлекаете. –
Спасибо, ребята, имели небольшую путаницу. –