diff --git a/index.js b/index.js index 29284a1bb..b3dfd6299 100755 --- a/index.js +++ b/index.js @@ -853,6 +853,9 @@ Request.prototype.onResponse = function (response) { } catch (e) {} } debug('emitting complete', self.uri.href) + if(response.body == undefined && !self._json) { + response.body = ""; + } self.emit('complete', response, response.body) }) } diff --git a/tests/test-emptyBody.js b/tests/test-emptyBody.js new file mode 100644 index 000000000..338c92e5e --- /dev/null +++ b/tests/test-emptyBody.js @@ -0,0 +1,20 @@ +var request = require('../index') + , http = require('http') + , assert = require('assert') + ; + +var s = http.createServer(function (req, resp) { + resp.statusCode = 200 + resp.end('') +}).listen(8080, function () { + var r = request('http://localhost:8080', function (e, resp, body) { + assert.equal(resp.statusCode, 200) + assert.equal(body, "") + + var r2 = request({ url: 'http://localhost:8080', json: {} }, function (e, resp, body) { + assert.equal(resp.statusCode, 200) + assert.equal(body, undefined) + s.close() + }); + }) +})