Câu trả lời:
Mô-đun yêu cầu của Mikeal có thể thực hiện việc này một cách dễ dàng:
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'},
tùy chọn.
Ví dụ đơn giản
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);
});
Như tài liệu chính thức cho biết:
body - phần thân thực thể cho các yêu cầu PATCH, POST và PUT. Phải là Bộ đệm, Chuỗi hoặc Dòng đọc. Nếu json là true, thì nội dung phải là một đối tượng JSON-serializable.
Khi gửi JSON, bạn chỉ cần đặt nó vào phần nội dung của tùy chọn.
var options = {
uri: 'https://myurl.com',
method: 'POST',
json: true,
body: {'my_date' : 'json'}
}
request(options, myCallback)
Đối với một số lý do chỉ điều này làm việc cho tôi ngày hôm nay. Tất cả các biến thể khác đều gặp lỗi json xấu từ API.
Bên cạnh đó, một biến thể khác để tạo yêu cầu ĐĂNG bắt buộc với tải trọng JSON.
request.post({
uri: 'https://www.googleapis.com/urlshortener/v1/url',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({"longUrl": "http://www.google.com/"})
});
Sử dụng yêu cầu với tiêu đề và bài đăng.
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));
})
Vì request
mô-đun mà các câu trả lời khác sử dụng đã không được dùng nữa, tôi có thể đề xuất chuyển sang 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()