#swift #alamofire
#swift #alamofire
Вопрос:
Вот что мне нужно:
- вызов post api
- в случае успеха: ничего не делать
- в случае сбоя (интернет недоступен): поместите запрос в стек
- следите за восстановлением сети
- если сеть доступна: повторите все в этом стеке
даже если пользователь закроет приложение, мне все равно нужен доступный стек. Мне нужно сохранить стек на диск
Вот что я планирую сделать:
- есть класс с именем apiRequest, он содержит
- параметры
- url
- есть класс с именем apiRequestManager, он содержит
- массив apiRequest
массив apiRequest сохраняется на диске. Каждый раз, когда пользователь хочет вызвать API, я сначала вызываю Alamofire.request и, если не удалось, помещаю его в массив apiRequest.
используйте NetworkReachabilityManager, чтобы прослушать, может ли пользователь связаться с сервером. Если true, то повторите все в apiRequest . Каждый раз, когда запрос выполняется успешно, удаляйте его из массива. остальное оставьте как есть.
Причина, по которой я задаю этот вопрос, заключается в том, что я новичок в платформе Alamofire. Я не знаю, хороший ли это способ или этот случай уже обработан в Alamofire.
Кроме того, существует протокол RequestRetrier. Но я не хочу повторять каждый отдельный запрос снова и снова, я хочу повторить все это одновременно, и если это не удастся, я хочу сохранить запрос на диске для будущих попыток, так что, я думаю, это не то, что я хочу использовать?
Есть предложения?
Спасибо.
Комментарии:
1. Вы когда-нибудь придумывали хорошее решение для этого?
2. @CliftonLabrum Я заканчиваю тем, что пишу свой собственный класс, который продолжает отслеживать то, что не было отправлено. Точно так же, как то, что я написал в своем вопросе о том, что я планирую делать.
3. @nuynait Можете ли вы опубликовать полный пример? Я также относительно новичок в Alamofire и iOS и пытался сделать то же самое…
4. @denis_lor извините, у меня нет времени, в последнее время я очень занят. Я был бы рад помочь по любым вашим вопросам.