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

时间:2019-04-17 09:05:37

标签: node.js npm-request

我必须调用我们正在使用request库的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与表单对象一起使用。没用 还将Content-Type更改为application / x-www-form-urlencoded,也无效

2 个答案:

答案 0 :(得分:0)

您可以在以下网址阅读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()

答案 1 :(得分:0)

此示例来自使用request包的文档,该表单接受一个对象,该对象由表单中的键值对组成

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){ /* ... */ })

enter link description here