Fixes & method for response stream parsing as text
This commit is contained in:
@@ -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);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user