web-dev-qa-db-fra.com

Angular 2 demande HTTPS

Comment configurer et faire une requête https depuis angular 2? Impossible de trouver des ressources dessus. S'il vous plaît quelqu'un peut me guider ici? Je vous remercie. 

6
Gaurav Ram

Juste au cas où quelqu'un d'autre essaie de le faire

Vous devez faire les appels https de la même manière que les appels http normaux, mais vous devez vous assurer que votre navigateur approuve le certificat utilisé par les API dorsales et qu'il peut se connecter à cette API.

Remarque:

Cela peut donner une erreur de délai d'attente dans les clients YARC ou REST. Vous devez donc essayer une requête GET simple directement dans le navigateur (par exemple, accédez à la requête d'obtention de https).

Par exemple, si nous avons cette API 

https://testDomain.com:7001/getCountries

Essayez de demander à obtenir cette URL en y accédant dans le navigateur. Si vous testez localement ou au format UAT, il est possible que votre certificat ne soit pas entièrement fiable dans le navigateur. allez-y (allez sur ce site)

Si vous pouvez appeler cette demande get avec succès dans le navigateur:

Ensuite, vous pouvez appeler les apps https de la même manière que vous appelez http normal (avec une URL complète correcte ayant le https et le numéro de port) selon les ressources ci-dessous:

1- Angular httpClient guide

2- Vous pouvez également consulter cet excellent guide sur les appels http dans Angular 5

3
Ahmed Elkoussy

Cette réponse est un peu en retard, mais pour les personnes qui la recherchent simplement, cela pourrait être utile.

Avec la dernière version de angular, vous pouvez utiliser http interceptor pour le faire, comme le montre la angular docs

2
Ivan Ruski

C'est si simple essayez ceci: -

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))
}
} 
1
Sandip Jaiswar

réponse courte, ajoutez ceci en haut de votre page.ts:

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

puis dans votre classe de page (sous le composant @), dans votre constructeur, ajoutez 'public http: Http' comme ceci:

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

puis en dehors de votre constructeur (dans votre classe de page), faites en sorte que la requête http fonctionne comme ceci:

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

puis utilisez-le n'importe où dans votre classe de page comme ceci:

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

* vous n'avez pas besoin de JSON.parse s'il ne s'agit pas de données JSON. juste res ['_ _ body'] est l'endroit où vous obtenez vos données.

1
Baksa Gimm

Assurez-vous simplement que l'URL de requête que vous transmettez dans les paramètres est https. 

Si vous utilisez un chemin complet, c'est simple, vous pouvez spécifier https, I.E. ' https://request.url.com '.

S'il s'agit d'un chemin relatif à votre application, tel que '/ api/some/data', votre application doit être hébergée de manière sécurisée et accessible via une connexion https.

1
Andrew Stalker