mirror of
https://github.com/nodejs/node.git
synced 2024-12-01 16:10:02 +01:00
f8ba9c3bc9
Change the http.Client API so that it provides a single request() method taking an optional parameter to specify the HTTP method (defaulting to "GET"), instead of the five methods get(), head(), post(), del() and put().
52 lines
1.2 KiB
JavaScript
52 lines
1.2 KiB
JavaScript
process.mixin(require("./common"));
|
|
http = require("http");
|
|
var PORT = 18032;
|
|
|
|
var sent_body = "";
|
|
var server_req_complete = false;
|
|
var client_res_complete = false;
|
|
|
|
var server = http.createServer(function(req, res) {
|
|
assert.equal("POST", req.method);
|
|
req.setBodyEncoding("utf8");
|
|
|
|
req.addListener("body", function (chunk) {
|
|
puts("server got: " + JSON.stringify(chunk));
|
|
sent_body += chunk;
|
|
});
|
|
|
|
req.addListener("complete", function () {
|
|
server_req_complete = true;
|
|
puts("request complete from server");
|
|
res.sendHeader(200, {'Content-Type': 'text/plain'});
|
|
res.sendBody('hello\n');
|
|
res.finish();
|
|
});
|
|
});
|
|
server.listen(PORT);
|
|
|
|
var client = http.createClient(PORT);
|
|
var req = client.request('POST', '/');
|
|
|
|
req.sendBody('1\n');
|
|
req.sendBody('2\n');
|
|
req.sendBody('3\n');
|
|
|
|
puts("client finished sending request");
|
|
req.finish(function(res) {
|
|
res.setBodyEncoding("utf8");
|
|
res.addListener('body', function(chunk) {
|
|
puts(chunk);
|
|
});
|
|
res.addListener('complete', function() {
|
|
client_res_complete = true;
|
|
server.close();
|
|
});
|
|
});
|
|
|
|
process.addListener("exit", function () {
|
|
assert.equal("1\n2\n3\n", sent_body);
|
|
assert.equal(true, server_req_complete);
|
|
assert.equal(true, client_res_complete);
|
|
});
|