我正在尝试发送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模块,但没有看到一种简单的方法来放入原始数据 - 只有形式:{}
答案 0 :(得分:2)
来自docs:
发送'Content-length'标头将禁用默认的分块编码。
由于您显然不想chunked transfer encoding,因为这是其他数字的来源,您必须自己设置Content-length
。但是,许多(大多数)服务器都会理解分块传输编码。