Jawaban:
Modul permintaan Mikeal dapat melakukan ini dengan mudah:
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.
}
});
headers: {'content-type' : 'application/json'},
opsi.
Contoh Sederhana
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);
});
Seperti yang dikatakan dalam dokumentasi resmi :
body - badan entitas untuk permintaan PATCH, POST dan PUT. Harus berupa Buffer, String, atau ReadStream. Jika json benar, maka isi harus merupakan objek yang dapat diserialkan JSON.
Saat mengirim JSON, Anda hanya perlu memasukkannya ke dalam opsi.
var options = {
uri: 'https://myurl.com',
method: 'POST',
json: true,
body: {'my_date' : 'json'}
}
request(options, myCallback)
Untuk beberapa alasan, hanya ini yang berhasil untuk saya hari ini. Semua varian lainnya berakhir dengan kesalahan json buruk dari API.
Selain itu, varian lain untuk membuat permintaan POST yang diperlukan dengan muatan JSON.
request.post({
uri: 'https://www.googleapis.com/urlshortener/v1/url',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({"longUrl": "http://www.google.com/"})
});
Menggunakan permintaan dengan header dan postingan.
var options = {
headers: {
'Authorization': 'AccessKey ' + token,
'Content-Type' : 'application/json'
},
uri: 'https://myurl.com/param' + value',
method: 'POST',
json: {'key':'value'}
};
request(options, function (err, httpResponse, body) {
if (err){
console.log("Hubo un error", JSON.stringify(err));
}
//res.status(200).send("Correcto" + JSON.stringify(body));
})
Karena request
modul yang digunakan jawaban lain sudah tidak digunakan lagi, saya sarankan untuk beralih ke 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()