diff --git a/lib/adapters/http.js b/lib/adapters/http.js index 780f7541c6..a3669de08e 100755 --- a/lib/adapters/http.js +++ b/lib/adapters/http.js @@ -297,15 +297,18 @@ module.exports = function httpAdapter(config) { }); stream.on('end', function handleStreamEnd() { - var responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer); - if (config.responseType !== 'arraybuffer') { - responseData = responseData.toString(config.responseEncoding); - if (!config.responseEncoding || config.responseEncoding === 'utf8') { - responseData = utils.stripBOM(responseData); + try { + var responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer); + if (config.responseType !== 'arraybuffer') { + responseData = responseData.toString(config.responseEncoding); + if (!config.responseEncoding || config.responseEncoding === 'utf8') { + responseData = utils.stripBOM(responseData); + } } + response.data = responseData; + } catch (err) { + reject(enhanceError(err, config, err.code, response.request, response)); } - - response.data = responseData; settle(resolve, reject, response); }); }