Quelqu'un peut-il me dire s'il s'agit de la bonne façon d'ajouter des en-têtes aux demandes HTTP dans Angular 6?
Lorsque je passe un appel via SwaggerUI, je peux voir que les en-têtes doivent être:
url -X GET --header 'Accept: application/json' --header 'zumo-api-version: 2.0.0' 'https://myurl/tables/stuff'
alors j'ai ajouté ce qui suit:
let headers: HttpHeaders = new HttpHeaders();
headers = headers.append('HttpHeader1', 'Accept:application/json');
headers = headers.append('HttpHeader2', 'zumo-api-version:2.0.0');
Et puis l'appel:
getStuff(){
return this.http.get('https://myurl/tables/stuff', {headers})
}
Il n'y a pas d'échec mais rien n'est retourné et je sais qu'il devrait y en avoir.
merci
METTRE À JOUR
Je viens de remarquer que l’url de mon appel est en fait https et non http, cela ferait-il une différence?
getStuff(){
return this.https.get('https://myurl/tables/stuff', {headers})
}
La manière correcte de définir headers
est
let headers: HttpHeaders = new HttpHeaders();
headers = headers.append('Accept', 'application/json');
headers = headers.append('zumo-api-version', '2.0.0');
Format angulaire 6:
let headers = new HttpHeaders({
'Accept': 'application/json',
'zumo-api-version': '2.0.0'
});
Le format correct pour définir les en-têtes serait comme indiqué ci-dessous.
let headers: HttpHeaders = new HttpHeaders();
headers = headers.append('Accept', 'application/json');
headers = headers.append('zumo-api-version', '2.0.0');
url -X GET --header 'Accept: application/json' --header 'zumo-api-version: 2.0.0' 'https://myurl/tables/stuff'
Dans la requête ci-dessus, le nom des clés d’en-tête est Accept & zumo-api-version, le texte précédant le :.
Les en-têtes sont essentiellement définis sous forme de paires clé/valeur
Vous n'obtenez rien en retour car vous ne vous abonnez pas à cet événement. ajoutez .subcribe
à cette fonction où que vous l'appeliez eg
getStuff().subscribe(data=>{
console.log(data);
}
)
donc, le data
auquel vous vous abonnez contient toutes les réponses et tout ce que vous devez savoir sur cet appel.
Vous pouvez en lire plus ici https://angular.io/guide/http
Je l'ai fait comme ça dans mon code
httpOptions={ headers: new HttpHeaders({ 'Content-Type': 'application/json'})};
this.httpOptions.headers = this.httpOptions.headers.append('Token', this.Token);
Et puis dans mon appel http.get, j'ai fait ceci:
return this.http.get<JSON>(this.API_ADDRESS+'/api/RemoveEmployee/'+id,this.httpOptions