Comment faire une requête HTTP comme celle-ci en NodeJS ? Exemple ou module apprécié.
curl https://www.googleapis.com/urlshortener/v1/url \
-H 'Content-Type: application/json' \
-d '{"longUrl": "http://www.google.com/"}'
Comment faire une requête HTTP comme celle-ci en NodeJS ? Exemple ou module apprécié.
curl https://www.googleapis.com/urlshortener/v1/url \
-H 'Content-Type: application/json' \
-d '{"longUrl": "http://www.google.com/"}'
La demande de Mikeal peut le faire facilement :
var request = require('request');
var options = {
uri: 'https://www.googleapis.com/urlshortener/v1/url',
method: 'POST',
json: {
"longUrl": "http://www.google.com/"
}
};
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body.id) // Print the shortened url.
}
});
Merci pour cette réponse utile. En fin de compte, je réalise que l'option est bien documentée. Mais perdue au milieu de plein d'autres...
Cela n'a pas fonctionné pour moi jusqu'à ce que j'ajoute l'option headers: {'content-type' : 'application/json'},
option.
- le module "request" de NodeJs est déprécié. - Comment pouvons-nous faire cela en utilisant le module 'http' ? Merci.
Exemple simple
var request = require('request');
//Custom Header pass
var headersOpt = {
"content-type": "application/json",
};
request(
{
method:'post',
url:'https://www.googleapis.com/urlshortener/v1/url',
form: {name:'hello',age:25},
headers: headersOpt,
json: true,
}, function (error, response, body) {
//Print the Response
console.log(body);
});
Comme le documentation officielle dit :
body - corps de l'entité pour les demandes PATCH, POST et PUT. Doit être un Buffer, String ou ReadStream. Si json est vrai, alors body doit être un objet sérialisable JSON.
Pour envoyer du JSON, il suffit de le mettre dans le corps de l'option.
var options = {
uri: 'https://myurl.com',
method: 'POST',
json: true,
body: {'my_date' : 'json'}
}
request(options, myCallback)
Pour une raison quelconque, seule celle-ci a fonctionné pour moi aujourd'hui. Toutes les autres variantes se sont retrouvées dans mauvais json erreur de l'API.
En outre, il existe une autre variante pour créer une requête POST requise avec des données utiles JSON.
request.post({
uri: 'https://www.googleapis.com/urlshortener/v1/url',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({"longUrl": "http://www.google.com/"})
});
Depuis le request
que d'autres réponses utilisent a été déprécié, puis-je suggérer de passer au module node-fetch
:
const fetch = require("node-fetch")
const url = "https://www.googleapis.com/urlshortener/v1/url"
const payload = { longUrl: "http://www.google.com/" }
const res = await fetch(url, {
method: "post",
body: JSON.stringify(payload),
headers: { "Content-Type": "application/json" },
})
const { id } = await res.json()
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.