x.web.request.11

server load testing

Usage no npm install needed!

<script type="module">
  import xWebRequest11 from 'https://cdn.skypack.dev/x.web.request.11';
</script>

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.11

request

Для запросов к веб-местам вы можете использовать приведенный далее союз процедур:

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.log(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.log(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.log(err)}
    console.log(response.statusCode, response.headers);	
});

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.log(err)}
    console.log(response.statusCode, response.headers);
});

кто слушал - молодец.