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 baseUrl = null;
|
||||||
var instance = this;
|
var instance = this;
|
||||||
|
|
||||||
//CookieJar and custom headers
|
//CookieJar and custom headers
|
||||||
var cookieJar = new CookieJar();
|
var cookieJar = new CookieJar();
|
||||||
this.headers = {};
|
this.headers = {};
|
||||||
|
|
||||||
if (_baseUrl) {
|
if (_baseUrl) {
|
||||||
baseUrl = url.parse(_baseUrl);
|
baseUrl = url.parse(_parameters.baseUrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_headers) {
|
if (_headers) {
|
||||||
this.headers = _headers;
|
this.headers = _parameters.headers;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.headers["User-Agent"] === undefined) {
|
if (this.headers["User-Agent"] === undefined) {
|
||||||
@@ -228,7 +228,7 @@ module.exports.HttpClient = function Browser (_baseUrl, _headers) {
|
|||||||
pathUrl.method = _request.method;
|
pathUrl.method = _request.method;
|
||||||
|
|
||||||
var request = protocol.request(pathUrl, function(response) {
|
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"]) {
|
if (response.headers["set-cookie"]) {
|
||||||
for (let i = 0 ; i < response.headers["set-cookie"].length ; ++i) {
|
for (let i = 0 ; i < response.headers["set-cookie"].length ; ++i) {
|
||||||
cookieJar.update(response.headers["set-cookie"][i]);
|
cookieJar.update(response.headers["set-cookie"][i]);
|
||||||
@@ -249,9 +249,9 @@ module.exports.HttpClient = function Browser (_baseUrl, _headers) {
|
|||||||
decoder = response;
|
decoder = response;
|
||||||
}
|
}
|
||||||
|
|
||||||
fulfill(decoder);
|
fulfill(response, decoder);
|
||||||
}
|
}
|
||||||
else if (response.statusCode < 400) {
|
else if (response.statusCode < 400 && _parameters.redirect) {
|
||||||
instance.get(response.headers.location)
|
instance.get(response.headers.location)
|
||||||
.then(fulfill)
|
.then(fulfill)
|
||||||
.catch(reject);
|
.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