Node.js est un environnement d'exécution JavaScript très populaire qui peut exécuter du code JavaScript côté serveur. Étant donné que Node.js a une vitesse de développement rapide, de bonnes performances et qu'il est adapté aux systèmes distribués, il dispose d'une très large gamme d'applications dans le domaine du développement Web et du cloud computing. Cet article explique comment utiliser Node.js en tant que client pour envoyer des requêtes HTTP au serveur.
Dans Node.js, nous pouvons utiliser le module http intégré pour effectuer des requêtes HTTP. Le module http peut facilement créer et envoyer des requêtes HTTP et traiter les données de réponse. Voici un exemple simple qui montre comment utiliser le module http pour effectuer une requête HTTP GET :
const http = require('http'); http.get('http://www.example.com', (res) => { console.log(`Got response: ${res.statusCode}`); res.on('data', (chunk) => { console.log(`Received data: ${chunk}`); }); }).on('error', (e) => { console.error(`Error: ${e.message}`); });
Dans le code, la méthode http.get() reçoit une chaîne d'URL et une fonction de rappel comme paramètres. Lorsque la fonction de rappel est appelée, un objet de réponse est passé à son premier paramètre res. Nous pouvons obtenir le code d'état de la réponse en accédant à l'attribut statusCode de l'objet res et recevoir les données de réponse en écoutant l'événement de données de l'objet res.
En plus de la méthode http.get(), le module http fournit également la méthode http.request(), qui peut gérer les requêtes HTTP POST et les en-têtes de requêtes personnalisés. Voici un exemple avec une requête POST et des en-têtes de requête personnalisés :
const http = require('http'); const options = { hostname: 'www.example.com', port: 80, path: '/post', method: 'POST', headers: { 'Content-Type': 'application/json' } }; const req = http.request(options, (res) => { console.log(`statusCode: ${res.statusCode}`); res.on('data', (d) => { process.stdout.write(d); }); }); req.on('error', (error) => { console.error(error); }); req.write(JSON.stringify({ hello: 'world' })); req.end();
Dans le code, nous utilisons la méthode http.request() pour créer un objet HTTPRequest et définir certaines options de requête. Parmi eux, l'option headers précise que le Content-Type demandé est application/json.
Ensuite, nous utilisons la méthode req.write() pour écrire des données dans le corps de la requête. Enfin, nous appelons la méthode req.end() pour terminer l’opération de requête.
Ce qui précède décrit comment utiliser le module http en tant que client pour envoyer des requêtes HTTP au serveur. Dans les applications réelles, nous devrons peut-être lancer différents types de requêtes HTTP dans différents scénarios. Par exemple, nous devrons peut-être envoyer une demande multipart/form-data pour télécharger un fichier, ou nous devons envoyer une demande application/x-www-form-urlencoded pour soumettre les données du formulaire. Dans ce cas, nous pouvons utiliser des modules tiers comme request ou axios pour simplifier l'opération.
Le module de requête est simple à utiliser et puissant, prenant en charge plusieurs types de requêtes HTTP et des en-têtes de requête personnalisés, des cookies, etc. Voici un exemple d'utilisation du module request :
const request = require('request'); request('http://www.example.com/', function (error, response, body) { console.log('error:', error); console.log('statusCode:', response && response.statusCode); console.log('body:', body); });
Dans le code, nous utilisons la méthode request() pour émettre une requête HTTP GET afin d'obtenir la réponse de www.example.com. Dans la fonction de rappel, nous pouvons accéder au code d'état de la réponse via response.statusCode et au contenu de la réponse via body. Le module
axios est également très facile à utiliser, puissant et possède des méthodes then() et catch() de type Promise. Voici un exemple utilisant le module axios :
const axios = require('axios'); axios.get('http://www.example.com/') .then(function (response) { console.log('statusCode:', response.status); console.log('headers:', response.headers); console.log('data:', response.data); }) .catch(function (error) { console.log('error:', error.message); console.log('response:', error.response.data); });
Dans le code, nous utilisons la méthode axios.get() pour faire une requête HTTP GET et traiter la réponse dans la fonction then(). Si la requête échoue, nous traitons l'erreur dans la fonction catch(). Grâce aux propriétés Response.status, Response.headers et Response.data, nous pouvons accéder respectivement au code d'état de la réponse, aux en-têtes de réponse et au contenu de la réponse.
Pour résumer, il est très simple de faire des requêtes HTTP en utilisant Node.js comme client. Dans le cas le plus simple, nous pouvons utiliser le module http intégré pour envoyer des requêtes HTTP GET. Pour des tâches plus complexes, telles que l'envoi de requêtes multipart/form-data ou d'en-têtes/corps de requête personnalisés, nous pouvons utiliser des modules tiers tels que request ou axios pour simplifier l'opération.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!