我正在尝试遵循此处的文档
http://nodejs.org/api/http.html
但是我找不到有关执行简单操作(例如将用户名和密码发布到 URL)的文档。我该怎么做?
node.js 文档对此并不是特别清楚
http://nodejs.org/api/http.html#http_http_request_options_callback
这就是我提出请求的方式,使用查询字符串来解析输入。
//require a few things.
var http = require('http'),
qs = require('qs');
//These are the post options
var options = {
hostname: 'www.mysite.com',
port: 80,
path: '/auth',
method: 'POST'
};
//The postdata can be anything, but I'm using querystring
//to convert it into the format
//username=User&password=Password to be easily parsed in php
var postdata = qs.stringify({
username:"User",
password:"Password"
});
//Initialise the variable that will store the response
var body='';
//Now we're going to set up the request and the callbacks to handle the data
var request = http.request(options, function(response) {
//When we receive data, we want to store it in a string
response.on('data', function (chunk) {
body += chunk;
});
//On end of the request, run what we need to
response.on('end',function() {
//Do Something with the data
console.log(body);
});
});
//Now we need to set up the request itself.
//This is a simple sample error function
request.on('error', function(e) {
console.log('problem with request: ' + e.message);
});
//Write our post data to the request
request.write(postdata);
//End the request.
request.end();
如果你需要做的不仅仅是一个 POST,比如使用 RESTful API,我建议你看看restler。
它有一个非常简单的 API
var rest = require('restler');
rest.post('http://service.com/login', {
data: { username: 'foo', password: 'bar' },
}).on('complete', function(data, response) {
if (response.statusCode == 200) {
// you can get at the raw response like this...
}
});