diff --git a/request.js b/request.js index 809611d55..30031605a 100644 --- a/request.js +++ b/request.js @@ -1382,7 +1382,9 @@ Request.prototype.write = function () { if (!self._started) { self.start() } - return self.req.write.apply(self.req, arguments) + if (self.req) { + return self.req.write.apply(self.req, arguments) + } } Request.prototype.end = function (chunk) { var self = this diff --git a/tests/test-headers.js b/tests/test-headers.js index dbd3c4d57..ee893b919 100644 --- a/tests/test-headers.js +++ b/tests/test-headers.js @@ -162,7 +162,7 @@ tape('undefined headers', function(t) { }) }) -tape('catch invalid characters error', function(t) { +tape('catch invalid characters error - GET', function(t) { request({ url: s.url + '/headers.json', headers: { @@ -177,6 +177,23 @@ tape('catch invalid characters error', function(t) { }) }) +tape('catch invalid characters error - POST', function(t) { + request({ + method: 'POST', + url: s.url + '/headers.json', + headers: { + 'test': 'אבגד' + }, + body: 'beep' + }, function(err, res, body) { + t.equal(err.message, 'The header content contains invalid characters') + }) + .on('error', function (err) { + t.equal(err.message, 'The header content contains invalid characters') + t.end() + }) +}) + tape('cleanup', function(t) { s.close(function() { t.end()