0

我正在尝试发送 POST 请求。这不是使用网络表单,它应该看起来像这样。

POST /echo HTTP/1.1
Host: dpsw.info
Connection: keep-alive
Transfer-Encoding: chunked

One
Two

使用 NodeJS http,这个脚本..

var options = {
  hostname: 'dpsw.info',
  port: 80,
  path: '/echo',
  method: 'POST'
};

var req = require('http').request(options, function(res) {
  res.on('data', function (chunk) {
    console.log('BODY: ' + chunk);
  });
});

req.on('error', function(e) {
  console.log('problem with request: ' + e.message);
});

// write data to request body
req.write('One\nTwo');
req.end();

然而,在嗅探器中查看时,数据看起来像这样..

POST /echo HTTP/1.1
Host: dpsw.info
Connection: keep-alive
Transfer-Encoding: chunked

7
One
Two
0

我有时也使用 Request 模块,但没有看到一种简单的方法来将原始数据放入其中 - 仅形式:{}

4

1 回答 1

2

文档

发送“内容长度”标头将禁用默认的分块编码。

由于您显然不想要分块传输编码,因为那是那些额外数字的来源,您必须Content-length自己设置。但是,许多(大多数)服务器可以很好地理解分块传输编码。

于 2013-09-17T14:48:20.523 回答