Ограничение использования приложения для Android

Прямо сейчас я разработал приложение для Android, которое доступно бесплатно на рынке. Приложение в основном использует HTTP GET для запроса некоторых данных с моего личного сервера. Я немного беспокоюсь о пропускной способности, так как мой сервер размещен на хостинге и, следовательно, ежемесячная передача ограничена.

Мне просто интересно, есть ли надежный способ ограничить количество запросов, сделанных каждым пользователем в день, скажем, до 20 запросов?

Для некоторого фона интерфейс приложения довольно прост. Два поля EditText для захвата параметров HTTP GET и Button для отправки запроса. В конечном итоге это возвращает некоторые значения из сценария cgi, который заполняет TextView в приложении.

Решения могут быть либо на стороне приложения, либо на стороне сервера. У меня была идея как-то записать количество уже сделанных запросов в файл и прочитать оттуда статус.

Есть ли лучшие способы добиться того, чего я хочу?


person Reuben L.    schedule 12.05.2012    source источник


Ответы (1)


Просто предложение:

В приложении:

Создайте уникальный идентификатор для каждого устройства (см. этот вопрос.) и отправить его на сервер с запросом.

На вашем сервере:

хранить подсчет запросов с каждого устройства где-то и применять любое ограничение, которое вы хотите, на основе сохраненного значения.


Обратите внимание, что вы можете ограничить запросы по IP на стороне сервера. Проблема с этим подходом заключается в том, что вы также ограничиваете пользователей, подключенных к Интернету с общим IP-адресом (например, несколько устройств, подключенных к точке доступа и т. д.).

person fardjad    schedule 12.05.2012
comment
Спасибо за ответ. У вас есть идеи, как ограничение может быть применено на стороне сервера? - person Reuben L.; 12.05.2012
comment
Храните количество запросов для каждого пользователя (DeviceID) в таблице базы данных (и сбрасывайте значения каждый день, используя задание cron). Затем при каждом запросе проверяйте DeviceID и отправляйте ответ об ошибке, если запросы превысили допустимое количество запросов. - person fardjad; 12.05.2012
comment
Благодарность! я сделал что-то более примитивное - добавил уникальный идентификатор в текстовый файл и использовал задание cron для его ежедневной очистки. каждый раз, когда пользователь запрашивает, я буду искать текстовый файл и выполнять команду wc -l, чтобы проверить, достигнут ли предел. - person Reuben L.; 12.05.2012