x.web.request.11
v1.1.8
Published
server load testing
Readme
install
Запрашивать данные из веб-мест можно процедурами модуля веб-запросов x.web.request.11. Модуль x.web.request.11 работает вместе с модулем x.web.cookie.11
npm install x.web.cookie.11
npm install x.web.request.11request
Для запросов к веб-местам вы можете использовать приведенный далее союз процедур:
let request = require('x.web.request.11').request;
new request({
host: 'yandex.ru',
port: 443,
method: 'HEAD',
path: '/'
}).https((err,data,response,option)=>{
if(err) {console.error(err)}
console.log(response.statusCode, response.headers);
});textDecode
Когда содержание тела ответа закодировано, а в заголовках ответа содержится название кодировки, например text/html; charset iso-8859-1, тогда можно декодировать "тело" методом, который будет применен при добавлении директивы textDecode в опции запроса
let request = require('x.web.request.11').request;
new request({
host: 'www.webmoney.ru',
port: 443,
method: 'GET',
path: '/',
textDecode: true,
}).https((err,data,response,option)=>{
if(err) {console.error(err)}
console.log(response.statusCode, response.headers);
});В этом случаи тело документа будет получено в кодировке binary и декодировано в соответствующую, полученную с ответом, кодировку ответа.
binary
Для "скачивания" бинарных данных следует указать кодировку binary в опции запроса.
let fs = require('fs');
let request = require('x.web.request.11').request;
new request({
host:vk.com,
port:443,
path:'/favicon.ico',
encoding: 'binary'
}).https((err,data,response,option)=>{
if(err) throw err;
fs.writeFileSync('./favicon.ico, data.toString(), {encoding:'binary'});
});По завершению ответа можно будет бинарные данные ответа записать в отдельный файл.
post
Вы можете передать данные в любое веб-место в теле запроса к нему.
request({
host: 'www.kaspersky.ru',
port: 443,
method: 'POST',
path: '/',
headers: {
'Content-Type': 'application/json; charset=utf-8'
},
data:'{"important": "data"}'
},(err,data,response,option)=>{
if(err) {console.error(err)}
console.log(response.statusCode, response.headers);
});timeout
Ограничивать время ожидания ответа веб-места, в миллисекундах, можно директивой timeout, внутри объекта опций запроса.
let request = require('x.web.request.11').request;
new request({
host: 'mail.ru',
path: '/',
timeout: 10000
}).https((err,data,response,option)=>{
if(err) {console.error(err)}
console.log(response.statusCode, response.headers);
});По истечению ограничительных миллисекунд ожидание ответа веб-места будет прервано с подходящим для обработки объектом ошибки err.
cookie
Модуль x.web.request.11 разграничивает файлы "cookies" по умолчанию в директорию ./cookie и в поддиректории с именем пользователя default. Вы можете менять имя пользователя, и директорию хранения его файлов "cookies" с помощью директивы опций setting, переданной с запросом.
let request = require('x.web.request.11').request;
new request({
host: 'www.kinopoisk.ru',
path: '/',
setting: {
username: 'user348392',
directory: './cookie'
}
}).https((err,data,response,option)=>{
if(err) {console.error(err)}
console.log(response.statusCode, response.headers);
});кто слушал - молодец.
