Envoyer une requête http get avec des paramètres dans Node.js
Je suis en train d'envoyer une requête GET à partir d'un Node.js application à un serveur Rails. Actuellement, je suis en utilisant le request
module comme suit:
var request = require("request");
var url = 'www.example.com'
function sendRequest(url){
string = 'http://localhost:3000/my-api-controller?url=' + url;
request.get(string, function(error, response, body){
console.log(body);
});
}
Cela fonctionne. Mais ce que je voudrais, c'est de ne pas construire la string
pour un get
demande, mais pour passer les paramètres de la demande comme un objet javascript (jQuery-comme la mode). Il est un exemple sur la page du wiki de la request
module qui utilise exactement ce genre de syntaxe:
request.get('http://some.server.com/', {
'auth': {
'user': 'username',
'pass': 'password',
'sendImmediately': false
}
});
Cependant, lorsque j'ai tenté d'adapter cette syntaxe pour mes fins comme suit:
function sendRequest(url){
request.get('http://localhost:3000/my-api-controller', {url: url}, function(error, response, body){
console.log(body);
});
}
la url
paramètre n'a pas pu être envoyé.
Donc ma question est, suis-je en train de faire quelque chose de mal ou ne le request
module pas en charge la transmission des paramètres d'un get
demande comme un objet javascript? Et si ça ne marche pas, pourriez-vous suggérer un Nœud bien pratique module?
J'ai formulé ma question mal. Je suis heureux d'envoyer un construit de la chaîne de requête tant que le module a des instruments pour construire pour moi et je n'ai pas à le construire moi-même par la concaténation de chaînes. Je n'étais pas au courant de la chaîne de requête module, je le crains.
OriginalL'auteur azangru | 2015-04-14
Vous devez vous connecter pour publier un commentaire.
Le "HTTP" Authentification exemple vous pointez dans la
request
module de ne pas créer une chaîne de requête, il ajoute des en-têtes d'authentification basée sur des options spécifiques. Il y a une autre partie de cette page qui décrit ce que vous voulez:Quelque chose comme ça. Ceci, à son tour, utilise le
querystring
module pour construire la chaîne de requête, comme il a été mentionné dans les commentaires.donc, c'est la
qs
fonction. J'ai lu la documentation mais il semble que je l'ai raté. Merci!!!!OriginalL'auteur skagedal
L'objet fourni à
request()
ou de ses méthodes pratiques n'est pas seulement pour les paramètres de données.De fournir
{ url: url }
à être envoyé dans la chaîne de requête, vous aurez envie d'utiliser leqs
option.request.get( {url: 'http://localhost:3000/my-api-controller', qs: { url: url }},...
— et la mise à jour de la syntaxerequest.get('http://localhost:3000/my-api-controller', {qs: { url: url }},...
— et ils travaillent tous les deux. Merci pour votre explication, et je souhaite DONC permis d'accepter plusieurs réponses.OriginalL'auteur Jonathan Lonowski