我即将制作一个带有基于网络的后端/仪表板的iOS POS系统。因此,我需要通过URL-Post请求将大量数据从iOS设备传输到网站,并以JSON格式传输。
然而,我的问题是,我如何做到这一点可靠 - 所以我确信我的数据已经备份,没有任何遗失?我想在每次交易时都制作一个URL,因为根据法律,我需要单独跟踪每笔交易。
因此,每次进行交易时,我都会在iOS设备上创建一个新主题并上传(因此我不会在上传时阻止设备的使用)。
但是,如果失败怎么办?我可以使用哪种系统来确保我的数据备份?我之前认为这个问题已经解决了,而不是试图自己解决问题,我希望得到帮助。
那么 - 你如何可靠地发出URL请求?
答案 0 :(得分:0)
一种方法是使用Alamofire和一个函数来发送数据。然后如果发送失败(何时),重新加载该功能(连续循环直到互联网回来)。
然而,你需要一个结束游戏'对于事物,无论你做什么 - 总是在这样的循环中放置计数器或其他机制(一些循环之后的小计时器等),以确保它最终会放弃并向用户发送一些错误消息(如"无法提供数据 - 再试一次")。
重读您的问题,我发现这更多的是备份或可靠性问题'比互联网失败.......
你总是可以做某种事情"交易OK"从服务器回来(为了得到真正的想象,你可以从手机发送一个特殊编码的号码,然后期望它作为服务器响应的一部分)。
这实际上取决于你期望的失败率(对于移动设备,你应该总是期待一些失败率,所以我认为你是在正确的轨道上!)如果一个简单的'重试会有效,或者你需要更多宏伟的计划。
答案 1 :(得分:0)
您可以通过检查是否获得预期的有效回复来可靠地进行网址调用,如果您不这样做,则可以采取相应的行动。
对应用程序中的数据(例如SHA等)进行校验和,并将该校验和与数据一起发送。然后,您的Web后端可以对收到的数据应用相同的校验和逻辑,如果它与应用程序的校验和不匹配 - 它知道数据出错了。
e.g。当您向Web后端发送POST时,后端应检查数据的完整性,并且只有在一切正常后才能返回成功的响应。否则它应该返回错误响应。
当你的iOS应用收到OK时,它知道一切都很好,可以正常进行。如果它获得了其他任何内容,即错误响应或超时 - 它可以在本地保存数据并稍后再尝试发送。
如果iOS应用程序在设定次数后无法发送数据,则可以记录警报。
如果Web后端发送错误响应,则Web后端应记录此内容,并可能在后端管理界面中显示警报。