1

Тема: Як задати розмір респонсу?

Всім Привіт!
Не можу зрозуміти як можна задати розмір респонса в байтах і наприклад,якщо розмір контента виходить за межі доступимого діапазону (котрий задаю min max),то статус URL-а повинен змінюватсь(наприклад на critcal);

Як я розумію,треба фігачити через apache http client reponse size .Зробити окремий метод,котрий з респонсу витяне розмір заданим полям і додасть параметри expectedResponseSizeFrom expectedResponseSizeTo ; If(!(responseSize > expectedResponseSizеFrom && responseSize < expectedResponseSizeTrue)) - то тоді статус critical ; expectedResponseSizeTrue -> expectedResponseSizeTo;

Ціль - Треба перевірити ,чи розмір відповідає параметрам;

Буду дуже вдячний якщо хтось наведе приклад з кодом;
А то я запарився вже *WALL*  *WALL*  *WALL*  *WALL*

2

Re: Як задати розмір респонсу?

Коли Ви завантажуєте файл через http, він стрімиться по частинках і дізнатися дійсний розмір файлу можна лише коли закінчиться зчитування даних. Проте є можливість полягатися на те, що сервер повідомить розмір файлу в наголовку Content-Length. Після цього Ви можете зробити свою дію, або завантажити файл. Тут приклад для apache http client: https://stackoverflow.com/a/29712378/2180005

Можна встановити ліміт на самому клієнті, але:
1) там немає можливості почепити свою логіку, якщо розмір фалу перевищує вказаний ліміт (хіба що ловити ексепшен і там писати логіку, що є анті-патерном "exeption driven development")
2) клієнт не буде перевіряти наголовок Content-Length, а почне читати файл. тобто дізнатися чи розмір досяг ліміту, можна лише прочитавши файл. Тож, якщо ліміт буде 2Гб, а файл 4Гб, воно буде читати кілька хвилин файл і потім викине виключення, замість вище згаданої перевірки Content-Length, яку можна зробити одразу.

Подякували: leofun011

3 Востаннє редагувалося javanoobie (22.01.2018 20:15:03)

Re: Як задати розмір респонсу?

*OK*