我必须调用一个api,我们正在为此使用请求库。
const options = {
uri: 'https://abcd.com',
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': 'Bearer xxxxxxxxx'
},
form: {
'a':1,
'b':2
}
}
request(options, (e, res, data) => {});
我将如何使用节点的 https 库重写相同的内容。
我尝试使用https库的https.request((和"POST"类型,.write与表单对象一起使用。没用。还将内容类型更改为应用程序/x-www-form-urlencoded,也不起作用
这个例子来自使用请求包的文档,表单从表单中获取一个由键值对组成的对象
request.post('http://service.com/upload', {form:{key:'value'}})
// or
request.post('http://service.com/upload').form({key:'value'})
// or
request.post({url:'http://service.com/upload', form: {key:'value'}},
function(err,httpResponse,body){ /* ... */ })
在此处输入链接说明
您可以在以下位置阅读 API 文档: https://nodejs.org/api/https.html
下面的代码应该可以正常工作:
const https = require('https')
const data = JSON.stringify({
'a':1,
'b':2
})
const options = {
hostname: 'example.com',
port: 443,
path: '/',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
'Content-Length': data.length
'Authorization': 'Bearer xxxxxxxxx'
}
}
const req = https.request(options, (res) => {
console.log(`statusCode: ${res.statusCode}`)
res.on('data', (d) => {
process.stdout.write(d)
})
})
req.on('error', (error) => {
console.error(error)
})
req.write(data)
req.end()