使用 https 库在帖子请求中发送表单



我必须调用一个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()

最新更新