Je cherche à utiliser les informations d'une demande HTTP en utilisant Node.js (c'est-à-dire appeler un service Web distant et faire écho à la réponse au client).
En PHP, j'aurais utilisé cURL pour faire cela. Quelle est la meilleure pratique dans Node?
http.request
...Réponses:
Consultez la documentation du module HTTP pour un exemple complet:
https://nodejs.org/api/http.html#http_http_request_options_callback
la source
request.js
github.com/mikeal/requestcURL
commande en requête node.js: curl.trillworks.com/#nodeLe
http
module que vous utilisez pour exécuter les serveurs est également utilisé pour effectuer des requêtes à distance.Voici l'exemple dans leurs documents:
la source
request
- npmjs.com/package/request - et votez pour la réponse de Nitish, ci-dessous, qui est la meilleure réponse en 2018.vous pouvez facilement utiliser le module de demande:
https://www.npmjs.com/package/request
Exemple de code:
la source
Puisqu'il semble
node-curl
mort, je l'ai bifurqué, renommé et modifié pour être plus curl et compiler sous Windows.node-libcurl
Exemple d'utilisation:
Perform est asynchrone,
et il n'y a aucun moyen de l'utiliser de manière synchrone actuellement (et ne l'aura probablement jamais).Il est toujours en version alpha, mais cela va bientôt changer et l'aide est appréciée.Il est maintenant possible d'utiliser le
Easy
handle directement pour les demandes de synchronisation, par exemple:De plus, le projet est maintenant stable!
la source
node tools/retrieve-win-deps && node tools/generate-stubs && node-gyp rebuild
étape. Des pensées?$ apt-get install libcurl4-openssl-dev
-L
option en quelque sorte?curl.setOpt( 'FOLLOWLOCATION', true );
. Btw, des questions comme celle-ci sont mieux adaptées au suivi des problèmes que cette section de commentaires. ;)ÉDITER:
Pour les nouveaux projets, veuillez ne pas utiliser request, car le projet est maintenant en mode maitainance et sera finalement obsolète
https://github.com/request/request/issues/3142
Au lieu de cela, je recommanderais Axios , la bibliothèque est conforme aux dernières normes de Node, et il existe des plugins disponibles pour l'améliorer, permettant des réponses de serveur simulées, des tentatives automatiques et d'autres fonctionnalités.
https://github.com/axios/axios
Ou en utilisant async / await:
J'utilise habituellement REQUEST, c'est un client HTTP simplifié mais puissant pour Node.js
https://github.com/request/request
C'est sur NPM
npm install request
Voici un exemple d'utilisation:
la source
si vous avez vraiment besoin d'un équivalent curl, vous pouvez essayer
node-curl
vous devrez probablement ajouter
libcurl4-gnutls-dev
.la source
Les exemples ci-dessus fonctionnent mais ne vont pas jusqu'à traiter réellement un exemple du monde réel (c'est-à-dire lorsque vous traitez des données provenant de plusieurs blocs. Une chose dont vous devez vous assurer est que vous avez un gestionnaire "on chunk" qui pousser les données dans un tableau (moyen le plus rapide de le faire dans JS) et un gestionnaire «on end» qui les joint tous ensemble afin que vous puissiez le retourner.
Cela est particulièrement nécessaire lorsque vous travaillez avec de grosses requêtes (plus de 5000 lignes) et que le serveur vous envoie un tas de données.
Voici un exemple dans l'un de mes programmes (coffeescript): https://gist.github.com/1105888
la source
Que diriez-vous par exemple de https://github.com/joyent/node/wiki/modules#wiki-tcp . Un résumé très rapide =>
la source
Il y a le module NPM pour faire une boucle comme demande,
npm curlrequest
.Étape 1:
$npm i -S curlrequest
Étape 2: dans votre fichier de nœud
Pour plus de lecture et de compréhension, npm curlrequest
la source
Utilisez le module request npm et après l'appel
Pour les meilleures pratiques, utilisez également un module winston logger ou un simple console.log, puis exécutez votre application comme
Le résultat de la commande ci-dessus générera un fichier txt à la racine avec toutes les données que vous avez imprimées dans console.log
la source
J'ai fini par utiliser la bibliothèque grunt-shell .
Voici l' essentiel de ma source pour ma tâche Grunt entièrement implémentée pour quiconque envisage de travailler avec l'API EdgeCast. Vous trouverez dans mon exemple que j'utilise un grunt-shell pour exécuter la commande curl qui purge le CDN.
C'est ce que j'ai fini avec après avoir passé des heures à essayer d'obtenir une requête HTTP pour fonctionner dans Node. J'ai pu en faire fonctionner un en Ruby et Python, mais je ne répondais pas aux exigences de ce projet.
la source
Utilise reqclient , c'est un petit module client en plus
request
qui vous permet de journaliser toute l'activité avec le style cURL (optionnel, pour les environnements de développement). Possède également des fonctionnalités intéressantes telles que l'analyse des URL et des paramètres, les intégrations d'authentification, la prise en charge du cache, etc.Par exemple, si vous créez un objet client et effectuez une requête:
Il enregistrera dans la console quelque chose comme ceci:
La demande renverra un objet Promise , vous devez donc gérer
then
etcatch
quoi faire avec le résultat.reqclient
est disponible avec NPM , vous pouvez installer le module avec:npm install reqclient
.la source
J'ai eu un problème pour envoyer des données POST vers le cloud DB à partir d'IOT RaspberryPi, mais après des heures, j'ai réussi à faire les choses correctement.
J'ai utilisé l'invite de commande pour le faire.
L'invite de commande montrera les problèmes - mauvais nom d'utilisateur / passe; mauvaise demande etc.
--URL base de données / emplacement du serveur (j'ai utilisé une base de données Cloudant gratuite simple) --user est le nom d'utilisateur de la partie d'authentification: passe que j'ai entré via l'API pass -X définit la commande à appeler (PUT, GET, POST, DELETE) -H type de contenu - Cloudant concerne la base de données de documents, où JSON est utilisé - le contenu des données lui-même est trié en JSON
la source
Module Request npm Request node moulde est bon à utiliser, il a des paramètres d'options pour obtenir / post request et il est également largement utilisé dans l'environnement de production.
la source
Vous voudrez peut-être essayer d'utiliser quelque chose comme ça
la source
Vous pouvez essayer d'utiliser l'application POSTMAN Chrome pour votre demande et vous pouvez générer du code node js à partir de là
la source
Vous pouvez utiliser le module request npm. Super simple à utiliser. Request est conçu pour être le moyen le plus simple possible de passer des appels http. Il prend en charge HTTPS et suit les redirections par défaut.
la source