Fixes & method for response stream parsing as text

This commit is contained in:
2015-08-20 22:50:21 +02:00
parent 7a0962c50b
commit d274ba3f96

View File

@@ -95,20 +95,20 @@ var CookieJar = function () {
};
module.exports.HttpClient = function Browser (_baseUrl, _headers) {
module.exports = function Browser (_parameters) {
var baseUrl = null;
var instance = this;
//CookieJar and custom headers
var cookieJar = new CookieJar();
this.headers = {};
if (_baseUrl) {
baseUrl = url.parse(_baseUrl);
baseUrl = url.parse(_parameters.baseUrl);
}
if (_headers) {
this.headers = _headers;
this.headers = _parameters.headers;
}
if (this.headers["User-Agent"] === undefined) {
@@ -228,7 +228,7 @@ module.exports.HttpClient = function Browser (_baseUrl, _headers) {
pathUrl.method = _request.method;
var request = protocol.request(pathUrl, function(response) {
if (response.statusCode < 300) {
if (response.statusCode < 300 || (response.statusCode < 400 && !_parameters.redirect)) {
if (response.headers["set-cookie"]) {
for (let i = 0 ; i < response.headers["set-cookie"].length ; ++i) {
cookieJar.update(response.headers["set-cookie"][i]);
@@ -249,9 +249,9 @@ module.exports.HttpClient = function Browser (_baseUrl, _headers) {
decoder = response;
}
fulfill(decoder);
fulfill(response, decoder);
}
else if (response.statusCode < 400) {
else if (response.statusCode < 400 && _parameters.redirect) {
instance.get(response.headers.location)
.then(fulfill)
.catch(reject);
@@ -281,3 +281,21 @@ module.exports.HttpClient = function Browser (_baseUrl, _headers) {
});
}
};
module.exports.readPage = function (data) {
return new Promise( function ( fulfill, reject) {
var page = "";
data.on("data", function (text) {
page += text;
});
data.on("end", function () {
fulfill(page);
});
data.on("error", function (error) {
reject(error);
});
});
};