Cet article vous amènera à comprendre le module HttpClientModule en angulaire et à présenter la méthode de requête, les paramètres de requête, le contenu de la réponse, les intercepteurs, Angular Proxy et d'autres connaissances connexes. J'espère que cela vous sera utile !
Ce module est utilisé pour envoyer des requêtes Http
, et les méthodes utilisées pour envoyer des requêtes renvoient des objets Observable
. [Tutoriels associés recommandés : "tutoriel angulaire"]
1), présentez le module HttpClientModule
// app.module.ts importer { httpClientModule } depuis '@angular/common/http' ; importations : [ httpClientModule ]
2) Injecter l'objet d'instance de service HttpClient pour l'envoi de requêtes
// app.component.ts importer { HttpClient } depuis '@angular/common/http' ; classe d'exportation AppComponent { constructeur (http privé : HttpClient) {} }
3), envoyer la demande
importer { HttpClient } depuis "@angular/common/http" classe d'exportation AppComponent implémente OnInit { constructeur (http privé : HttpClient) {} ngOnInit() { this.getUsers().subscribe(console.log) } getUsers() { renvoyer this.http.get("https://jsonplaceholder.typicode.com/users") } }
this.http.get(url [, options]); this.http.post(url, données [, options]); this.http.delete(url [, options]); this.http.put(url, données [, options]);
this.http.get<Post[]>('/getAllPosts') .subscribe(réponse => console.log(réponse))
1. Classe HttpParams
export déclare la classe HttpParams { constructeur (options ? : HttpParamsOptions); has(param: string): booléen; get(param: chaîne): chaîne null; getAll(param: chaîne): chaîne[] null; clés() : chaîne[]; append(param : chaîne, valeur : chaîne) : HttpParams ; set(param : chaîne, valeur : chaîne) : HttpParams ; delete(param : chaîne, valeur ? : chaîne) : HttpParams ; toString() : chaîne ; }
2. Interface HttpParamsOptions
déclarer l'interface HttpParamsOptions { fromString? : chaîne ; depuisObjet ? : { [param : chaîne] : chaîne | ReadonlyArray<string> ; } ; encodeur ? : HttpParameterCodec ; }
3. Exemples d'utilisation
importer { HttpParams } depuis '@angular/common/http' ; let params = new HttpParams({ fromObject : {name : "zhangsan", age : "20"}}) params = params.append("sexe", "mâle") let params = new HttpParams({ fromString : "name=zhangsan&age=20"})
La création de champs d'en-tête de requête nécessite l'utilisation de la classe HttpHeaders. Il existe différentes méthodes pour exploiter les en-têtes de requête sous l'objet d'instance de classe.
export déclare la classe HttpHeaders { constructeur (en-têtes ? : chaîne | { [nom : chaîne] : chaîne | chaîne[]; }); has(nom : chaîne) : booléen ; get(nom : chaîne) : chaîne null ; clés() : chaîne[]; getAll(nom : chaîne) : chaîne[] | null ; append(nom : chaîne, valeur : chaîne | chaîne[]) : HttpHeaders ; set(nom : chaîne, valeur : chaîne | chaîne[]) : HttpHeaders ; delete(nom : chaîne, valeur ? : chaîne | chaîne[]) : HttpHeaders ; }
let headers = new HttpHeaders({ test : "Bonjour" })
déclarer le type HttpObserve = 'body' | 'response'; // la réponse lit le corps complet de la réponse // le corps lit les données renvoyées par le serveur
ceci.http.get( "https://jsonplaceholder.typicode.com/users", { observer : "corps" } ).subscribe(console.log)
Les intercepteurs sont un moyen de capturer et de modifier globalement les requêtes et réponses HTTP dans les applications angulaires. (Jeton, erreur)
L'intercepteur n'interceptera que les requêtes effectuées à l'aide du module HttpClientModule.
ng g interceptor <name>
6.1 Interception des demandes
@Injectable() classe d'exportation AuthInterceptor implémente HttpInterceptor { constructeur() {} //Interception de la méthode d'interception( // inconnu spécifie le type de corps de la requête (body) : HttpRequest<unknown>, suivant : HttpHandler // inconnu spécifie le type de contenu de la réponse (corps)) : Observable<HttpEvent<unknown>> { // Cloner et modifier l'en-tête de la requête const req = request.clone({ setHeaders : { Autorisation : « Porteur xxxxxxx » } }) // Renvoie l'en-tête de requête modifié à l'application via la fonction de rappel return next.handle(req) } }
6.2 Interception de réponse
@Injectable() classe d'exportation AuthInterceptor implémente HttpInterceptor { constructeur() {} //Interception de la méthode d'interception( requête : HttpRequest<inconnu>, suivant : HttpHandler ): Observable<any> { retourner next.handle(request).pipe( réessayez (2), catchError((erreur : HttpErrorResponse) => throwError(erreur)) ) } }
6.3 Injection d'intercepteur
importer { AuthInterceptor } depuis "./auth.interceptor" importer { HTTP_INTERCEPTORS } depuis "@angular/common/http" @NgModule({ fournisseurs : [ { fournir : HTTP_INTERCEPTORS, useClass : AuthInterceptor, multi : vrai } ] })
1. Créez le fichier proxy.conf.json dans le répertoire racine du projet et ajoutez le code suivant
{ "/api/*": { "cible": "http://localhost:3070", "sécurisé" : faux, "changeOrigin": vrai } }
/api/* : Les requêtes commençant par /api effectuées dans l'application passent par ce proxy
cible : URL côté serveur
sécurisé : si le protocole de l'URL côté serveur est https, cet élément doit être vrai
changeOrigin : si le serveur n'est pas localhost, cet élément doit être vrai
2. Spécifiez le fichier de configuration du proxy (méthode 1)
"scripts": { "start": "ng serve --proxy-config proxy.conf.json", }
3. Spécifiez le fichier de configuration du proxy (méthode 2)
"servir": { "options": { "proxyConfig": "proxy.conf.json" },
Ce module est utilisé pour envoyer des requêtes Http
, et les méthodes utilisées pour envoyer des requêtes renvoient des objets Observable
.