recherche
Maisoninterface Webjs tutorielTutoriel de base sur la façon d'utiliser le module Request dans Node.js pour gérer les requêtes du protocole HTTP

Nous introduisons ici un module Node.js - requête. Avec ce module, les requêtes http deviennent super simples.

Tutoriel de base sur la façon dutiliser le module Request dans Node.js pour gérer les requêtes du protocole HTTP

Request est super simple à utiliser et prend en charge https et la redirection.

var request = require('request');
request('http://www.google.com', function (error, response, body) {
 if (!error && response.statusCode == 200) {
 console.log(body) // 打印google首页
}
})

Flux :

Toute réponse peut être sortie vers un flux de fichiers.

Flux :

Toute réponse peut être générée dans un flux de fichiers.

request('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png'))

À votre tour, vous pouvez également transmettre le fichier à une requête PUT ou POST. Si aucun en-tête n'est fourni, l'extension du fichier sera détectée et le type de contenu correspondant sera défini dans la requête PUT.

fs.createReadStream('file.json').pipe(request.put('http://mysite.com/obj.json'))
Les requêtes peuvent également être redirigées vers elles-mêmes. Dans ce cas, le type de contenu et la longueur du contenu d'origine seront conservés.

request.get('http://google.com/img.png').pipe(request.put('http://mysite.com/img.png'))
Formulaire :

request prend en charge application/x-www-form-urlencoded et multipart/form-data pour implémenter le téléchargement de formulaire.

x-www-form-urlencoded est simple :

request.post('http://service.com/upload', {form:{key:'value'}})

ou :

request.post('http://service.com/upload').form({key:'value'})

Utilisez multipart/form-data et vous n'aurez pas à vous soucier de questions triviales telles que la configuration des demandes d'en-têtes vous aidera à le résoudre.

var r = request.post('http://service.com/upload')
var form = r.form()
form.append('my_field', 'my_value')
form.append('my_buffer', new Buffer([1, 2, 3]))
form.append('my_file', fs.createReadStream(path.join(__dirname, 'doodle.png'))
form.append('remote_file', request('http://google.com/doodle.png'))

Authentification HTTP :

request.get('http://some.server.com/').auth('username', 'password', false);

ou

request.get('http://some.server.com/', {
 'auth': {
 'user': 'username',
 'pass': 'password',
 'sendImmediately': false
}
});

sendImmédiatement, la valeur par défaut est true, envoie un en-tête d'authentification de base. Après l'avoir défini sur false, il réessayera lors de la réception d'un 401 (la réponse 401 du serveur doit inclure la méthode d'authentification spécifiée par WWW-Authenticate).

L'authentification Digest est prise en charge lorsque sendImmediately est vrai.

Connexion OAuth :

// Twitter OAuth
var qs = require('querystring')
 , oauth =
 { callback: 'http://mysite.com/callback/'
 , consumer_key: CONSUMER_KEY
 , consumer_secret: CONSUMER_SECRET
}
 , url = 'https://api.twitter.com/oauth/request_token'
;
request.post({url:url, oauth:oauth}, function (e, r, body) {
 // Ideally, you would take the body in the response
 // and construct a URL that a user clicks on (like a sign in button).
 // The verifier is only available in the response after a user has
 // verified with twitter that they are authorizing your app.
 var access_token = qs.parse(body)
 , oauth =
 { consumer_key: CONSUMER_KEY
 , consumer_secret: CONSUMER_SECRET
 , token: access_token.oauth_token
 , verifier: access_token.oauth_verifier
}
 , url = 'https://api.twitter.com/oauth/access_token'
;
 request.post({url:url, oauth:oauth}, function (e, r, body) {
 var perm_token = qs.parse(body)
 , oauth =
 { consumer_key: CONSUMER_KEY
 , consumer_secret: CONSUMER_SECRET
 , token: perm_token.oauth_token
 , token_secret: perm_token.oauth_token_secret
}
 , url = 'https://api.twitter.com/1/users/show.json?'
 , params =
 { screen_name: perm_token.screen_name
 , user_id: perm_token.user_id
}
;
 url += qs.stringify(params)
 request.get({url:url, oauth:oauth, json:true}, function (e, r, user) {
console.log(user)
})
})
})

En-tête HTTP personnalisé

L'agent utilisateur et autres peuvent être définis dans le objet d'options. Dans l'exemple suivant, nous appelons l'API github pour connaître le numéro de collection et le numéro dérivé d'un certain entrepôt. Nous utilisons un User-Agent personnalisé et https. Définissez jar sur true dans les valeurs par défaut ou les options afin que les requêtes ultérieures utilisent des cookies

var request = require('request');
 
var options = {
 url: 'https://api.github.com/repos/mikeal/request',
 headers: {
 'User-Agent': 'request'
}
};
 
function callback(error, response, body) {
 if (!error && response.statusCode == 200) {
 var info = JSON.parse(body);
 console.log(info.stargazers_count +"Stars");
 console.log(info.forks_count +"Forks");
}
}
 
request(options, callback);

En créant une nouvelle instance de request.jar(), vous peut utiliser des cookies personnalisés au lieu de demander le pot de cookies global.

var request = request.defaults({jar: true})
request('http://www.google.com', function () {
request('http://images.google.com')
})

ou

var j = request.jar()
var request = request.defaults({jar:j})
request('http://www.google.com', function () {
request('http://images.google.com')
})

Notez que setCookie nécessite au moins trois Paramètres, le dernier est la fonction de rappel.

Vous pouvez utiliser la méthode du tube de requête pour obtenir facilement le flux de fichiers de l'image

var j = request.jar()
var cookie = request.cookie('your_cookie_here')
j.setCookie(cookie, uri, function (err, cookie){})
request({url: 'http://www.google.com', jar: j}, function () {
request('http://images.google.com')
})

Pour plus de méthodes d'utilisation et d'instructions, cliquez ici Continuer la lecture : https://github.com/mikeal/request/

Exemple

var request = require('request'),
fs = require('fs');
 
request('https://www.google.com.hk/images/srpr/logo3w.png').pipe(fs.createWriteStream('doodle.png'));
Un exemple très simple est écrit ici pour récupérer les données de requête d'hôtel de Qunar.com (obtenir le prix classement de chaque type de chambre dans l'hôtel sur une certaine période de temps) :

Cet exemple vient d'un ami qui est dans l'hôtellerie, vous souhaitez connaître la compétitivité des prix que vous proposez aux clients sur votre site Internet :

var request = require('request'),
fs = require('fs');
 
 
var reqUrl = 'http://hotel.qunar.com/price/detail.jsp?fromDate=2012-08-18&toDate=2012-08-19&cityurl=shanghai_city&HotelSEQ=shanghai_city_2856&cn=5';
 
request({uri:reqUrl}, function(err, response, body) {
 
//console.log(response.statusCode);
//console.log(response);
 
//如果数据量比较大,就需要对返回的数据根据日期、酒店ID进行存储,如果获取数据进行对比的时候直接读文件
var filePath = __dirname + '/data/data.js';
 
if (fs.exists(filePath)) {
 fs.unlinkSync(filePath);
 
 console.log('Del file ' + filePath);
}
 
fs.writeFile(filePath, body, 'utf8', function(err) {
 if (err) {
 throw err;
 }
 
 console.log('Save ' + filePath + ' ok~');
});
 
console.log('Fetch ' + reqUrl + ' ok~');
});
1. Si le prix que vous proposez est trop bas, vous gagnerez moins d'argent, donc si votre prix est la plus basse, alors vous devez voir quelle est la deuxième valeur la plus basse, puis décider si vous souhaitez l'ajuster

2. Si le prix fourni est trop élevé, les résultats du classement de la recherche seront inférieurs, et il y en aura ; il n'y aura pas de clients pour réserver l'hôtel, et l'entreprise disparaîtra

Parce que nous faisons beaucoup de réservation d'hôtels, par exemple, plus de 2 000 hôtels, si nous nous appuyons sur le manuel. En vérifiant les classements un par un, ce sera plus passif et il sera difficile de l'étendre, donc il en a besoin. J'ai analysé que c'était faisable, et cela peut être transformé en un bon système d'alerte en temps réel (bien sûr le les données seront automatiquement actualisées sur la page toutes les 5 à 10 minutes). Ce n'est qu'ainsi que les profits pourront être maximisés, l'efficacité du travail des services commerciaux et clients être améliorée, et le nombre de coopérations hôtelières et l'expansion du personnel de l'entreprise seront accélérés :

1. Ne perdez pas d'argent et ne le faites pas. effectuer des transactions déficitaires ;

2. Si vous trouvez que le prix fourni est trop bas ou trop élevé, vous devez prendre en charge l'appel de l'interface API de la plateforme pour modifier directement le prix

3. Il existe une fonction pour générer automatiquement des rapports d'analyse pour analyser les stratégies d'ajustement des prix des concurrents

Pour plus d'articles connexes sur le didacticiel d'utilisation de base du module Request dans Node.js pour gérer les requêtes du protocole HTTP ; , veuillez faire attention au site Web PHP chinois !

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Javascript et le web: fonctionnalité de base et cas d'utilisationJavascript et le web: fonctionnalité de base et cas d'utilisationApr 18, 2025 am 12:19 AM

Les principales utilisations de JavaScript dans le développement Web incluent l'interaction client, la vérification du formulaire et la communication asynchrone. 1) Mise à jour du contenu dynamique et interaction utilisateur via les opérations DOM; 2) La vérification du client est effectuée avant que l'utilisateur ne soumette les données pour améliorer l'expérience utilisateur; 3) La communication de rafraîchissement avec le serveur est réalisée via la technologie AJAX.

Comprendre le moteur JavaScript: détails de l'implémentationComprendre le moteur JavaScript: détails de l'implémentationApr 17, 2025 am 12:05 AM

Comprendre le fonctionnement du moteur JavaScript en interne est important pour les développeurs car il aide à écrire du code plus efficace et à comprendre les goulots d'étranglement des performances et les stratégies d'optimisation. 1) Le flux de travail du moteur comprend trois étapes: analyse, compilation et exécution; 2) Pendant le processus d'exécution, le moteur effectuera une optimisation dynamique, comme le cache en ligne et les classes cachées; 3) Les meilleures pratiques comprennent l'évitement des variables globales, l'optimisation des boucles, l'utilisation de const et de locations et d'éviter une utilisation excessive des fermetures.

Python vs JavaScript: la courbe d'apprentissage et la facilité d'utilisationPython vs JavaScript: la courbe d'apprentissage et la facilité d'utilisationApr 16, 2025 am 12:12 AM

Python convient plus aux débutants, avec une courbe d'apprentissage en douceur et une syntaxe concise; JavaScript convient au développement frontal, avec une courbe d'apprentissage abrupte et une syntaxe flexible. 1. La syntaxe Python est intuitive et adaptée à la science des données et au développement back-end. 2. JavaScript est flexible et largement utilisé dans la programmation frontale et côté serveur.

Python vs JavaScript: communauté, bibliothèques et ressourcesPython vs JavaScript: communauté, bibliothèques et ressourcesApr 15, 2025 am 12:16 AM

Python et JavaScript ont leurs propres avantages et inconvénients en termes de communauté, de bibliothèques et de ressources. 1) La communauté Python est amicale et adaptée aux débutants, mais les ressources de développement frontal ne sont pas aussi riches que JavaScript. 2) Python est puissant dans les bibliothèques de science des données et d'apprentissage automatique, tandis que JavaScript est meilleur dans les bibliothèques et les cadres de développement frontaux. 3) Les deux ont des ressources d'apprentissage riches, mais Python convient pour commencer par des documents officiels, tandis que JavaScript est meilleur avec MDNWEBDOCS. Le choix doit être basé sur les besoins du projet et les intérêts personnels.

De C / C à JavaScript: comment tout cela fonctionneDe C / C à JavaScript: comment tout cela fonctionneApr 14, 2025 am 12:05 AM

Le passage de C / C à JavaScript nécessite de s'adapter à la frappe dynamique, à la collecte des ordures et à la programmation asynchrone. 1) C / C est un langage dactylographié statiquement qui nécessite une gestion manuelle de la mémoire, tandis que JavaScript est dynamiquement typé et que la collecte des déchets est automatiquement traitée. 2) C / C doit être compilé en code machine, tandis que JavaScript est une langue interprétée. 3) JavaScript introduit des concepts tels que les fermetures, les chaînes de prototypes et la promesse, ce qui améliore la flexibilité et les capacités de programmation asynchrones.

Moteurs JavaScript: comparaison des implémentationsMoteurs JavaScript: comparaison des implémentationsApr 13, 2025 am 12:05 AM

Différents moteurs JavaScript ont des effets différents lors de l'analyse et de l'exécution du code JavaScript, car les principes d'implémentation et les stratégies d'optimisation de chaque moteur diffèrent. 1. Analyse lexicale: convertir le code source en unité lexicale. 2. Analyse de la grammaire: générer un arbre de syntaxe abstrait. 3. Optimisation et compilation: générer du code machine via le compilateur JIT. 4. Exécuter: Exécutez le code machine. Le moteur V8 optimise grâce à une compilation instantanée et à une classe cachée, SpiderMonkey utilise un système d'inférence de type, résultant en différentes performances de performances sur le même code.

Au-delà du navigateur: Javascript dans le monde réelAu-delà du navigateur: Javascript dans le monde réelApr 12, 2025 am 12:06 AM

Les applications de JavaScript dans le monde réel incluent la programmation côté serveur, le développement des applications mobiles et le contrôle de l'Internet des objets: 1. La programmation côté serveur est réalisée via Node.js, adaptée au traitement de demande élevé simultané. 2. Le développement d'applications mobiles est effectué par le reactnatif et prend en charge le déploiement multiplateforme. 3. Utilisé pour le contrôle des périphériques IoT via la bibliothèque Johnny-Five, adapté à l'interaction matérielle.

Construire une application SaaS multi-locataire avec next.js (intégration backend)Construire une application SaaS multi-locataire avec next.js (intégration backend)Apr 11, 2025 am 08:23 AM

J'ai construit une application SAAS multi-locataire fonctionnelle (une application EdTech) avec votre outil technologique quotidien et vous pouvez faire de même. Premièrement, qu'est-ce qu'une application SaaS multi-locataire? Les applications saas multi-locataires vous permettent de servir plusieurs clients à partir d'un chant

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Version Mac de WebStorm

Version Mac de WebStorm

Outils de développement JavaScript utiles

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

SublimeText3 version anglaise

SublimeText3 version anglaise

Recommandé : version Win, prend en charge les invites de code !

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

Intégrez Eclipse au serveur d'applications SAP NetWeaver.