发布数据仅是发送一个查询字符串(就像您在后面添加URL一样
?)。
这需要
Content-Type和
Content-Length标头,因此接收服务器知道如何解释传入的数据。(*)
var querystring = require('querystring');var http = require('http');var data = querystring.stringify({ username: yourUsernamevalue, password: yourPasswordValue });var options = { host: 'my.url', port: 80, path: '/login', method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlenpred', 'Content-Length': Buffer.byteLength(data) }};var req = http.request(options, function(res) { res.setEncoding('utf8'); res.on('data', function (chunk) { console.log("body: " + chunk); });});req.write(data);req.end();(*)发送数据需要正确设置Content-Type标头,即
application/x-www-form-urlenpred标准HTML表单将使用的传统格式。
application/json以完全相同的方式发送JSON()很容易;只是
JSON.stringify()事先的数据。
URL编码的数据支持一种结构级别(即键和值)。在交换具有嵌套结构的数据时,JSON很有用。
最重要的是:服务器必须能够解释有问题的内容类型。它可能是
text/plain或其他任何东西;如果接收服务器按原样理解数据,则无需转换数据。
application/json;charset=Windows-1252如果您的数据使用不寻常的字符集(例如,不是UTF-8),请添加一个字符集参数(例如)。例如,如果您从文件中读取它,则可能有必要。



