Как определить длину контента (размер ответа) без получения ответа в Nodejs? - PullRequest
0 голосов
/ 28 февраля 2019

Я запрашиваю сервер отдыха у nodejs с помощью модуля запроса nodejs. Можно ли определить размер данных, которые будут возвращены мне (до принятия данных)? Я хочу отменить операцию, если размерданные, которые будут возвращены мне, превышают сумму, которую я определяю. Цель здесь - убедиться, что моя сеть не заблокирована.

Моя часть запроса выглядит следующим образом;

const request = registry.get("requestPromiseNative");
const logger = registry.get("logger");
let env = registry.get("env");

 class SmartContractFetch {
constructor() {
this.dataSizeFetched = 0; //in bytes
}

async fetchData(method, url, data = {}, header = {}) {
try {
  logger.info("Smart contract fetch işlemi başladı.");
  if (method.toUpperCase() === "POST") {
    console.log("POS içinde  : " + JSON.stringify(data));
    let response = await request.post({
      url: url,
      resolveWithFullResponse: true,
      form: data,
      headers: header
    });
    let responseJSON = JSON.parse(response.body);
    this.dataSizeFetched += response.body.length;
    logger.info(
      "Smart contract fetch işlemi başarıyla tamamlandı. Gelen Data : " +
        responseJSON
    );
    return responseJSON;
  } else if (method.toUpperCase() === "GET") {
    console.log("GET içinde  : " + JSON.stringify(data));
    let response = await request.get({
      url: url,
      resolveWithFullResponse: true,
      form: data,
      headers: header
    });
    this.dataSizeFetched += response.body.length;
    let responseJSON = JSON.parse(response.body);
    logger.info(
      "Smart contract fetch işlemi başarıyla tamamlandı. Gelen Data : " +
        responseJSON
    );
    return responseJSON;
  }
} catch (error) {
  logger.error(
    "Smart contract fetch işlemi başarısız. Sonuç : " + error.message
  );
  throw new Error(error);
}
 }
 }
 module.exports = SmartContractFetch;
...