Это должно быть общая проблема, но до сих пор я нигде не слышал и не читал об этом.
Итак, проблема в том, что когда мы отправляем сетевой запрос (POST
запросы критичны) с мобильного телефонаприложение на сервер, иногда пользователь отключается от Интернета до получения ответа, а retrofit
(сетевая библиотека Android) отвечает с ошибкой подключения, хотя запрос был отправлен на сервер.Таким образом, сервер создал новую запись для этого запроса, но пользователь не знал об этом.
И, увидев ошибку соединения, пользователь снова пытается создать такую же запись, и в результате мы получаем дублированные записи.
Каковы возможные решения для этого?Хотя наше приложение построено на Android, эта проблема должна быть общей и известной многим разработчикам.
Мы отключаем кнопку в приложении до тех пор, пока не получим ответ от сервера, поэтому нажатие кнопки в быстрой последовательности не является проблемой.
Что мы думаем
- Получите UUID от сервера для любого нового запроса и отправляйте UUID с каждым запросом, чтобы сервер отбрасывал UUID после его использования.