NodeJs发送http post请求无法带上参数的问题

Fri Jan 22 16:10:06 CST 2016 1202 NodeJS

文章摘要NodeJs发送http post请求带上参数

代码1

var http        =   require("http")
var querystring = require("querystring")
var iconv       =   require("iconv-lite")

var form_data = querystring.stringify({
        "title1":XX,
        "title2":XX
 })

var options = {
       hostname: "XXX.com",
       method: "POST",
       path: "/XX",
 }
 var strHtml = ""
 var req = http.request(options, function (res) {
  console.log(res.statusCode)
  res.on("data", function(chunk){
    strHtml += iconv.decode(chunk,"utf-8")
  })
  res.on("end", function() {
    console.log(strHtml)
  })
}).on("error", function(error){
    console.log(error.message)
})

req.write(form_data)
req.end()

以上代码,参数title1和title2无法被提交到服务端。


需要在options加入headers信息才能够成功提交

var http        =   require("http")
var querystring = require("querystring")
var iconv       =   require("iconv-lite")

var form_data = querystring.stringify({
        "title1":XX,
        "title2":XX
 })

var options = {
       hostname: "XXX.com",
       method: "POST",
       path: "/XX",
       headers: {
            "Content-Type": "application/x-www-form-urlencoded",
            "Content-Length": form_data.length,
       }
 }
 var strHtml = ""
 var req = http.request(options, function (res) {
        console.log(res.statusCode)
        res.on("data", function(chunk){
        strHtml += iconv.decode(chunk,"utf-8")
  })
  res.on("end", function() {
       console.log(strHtml)
   })
}).on("error", function(error){
       console.log(error.message)
})

req.write(form_data)
req.end()

在headers中指定请求内容类型和内容长度即可

打赏
打赏

分享到: