2012-05-12 2 views
0

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

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

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

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

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

ответ

1

Только предложение:

В вашей APP:

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

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

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


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

+0

Спасибо за ответ. Не могли бы вы представить, как ограничение может быть применено на сервере? –

+0

Хранить количество запросов для каждого пользователя (DeviceID) в таблице базы данных (и каждый день сбрасывать значения с помощью задания cron). Затем по каждому запросу проверьте DeviceID и отправьте ответ об ошибке, если количество запросов превысило количество разрешенных запросов. – fardjad

+0

спасибо! я сделал что-то немного более примитивное - добавив уникальный идентификатор в txt-файл и используя задание cron для его ежедневного опорожнения. каждый раз, когда пользователь запрашивает, я буду grep txt-файл и сделаю wc -l, чтобы проверить, достигнут ли предел. –

Смежные вопросы