我偶然发现了一个奇怪的bug,我无法找到一个工作。如果我进入iphone设置并手动将时间设置为早一个小时,但保持时区不变,那么对simpleDB的所有请求都会导致超时。我需要一种方法,要么在应用程序内自动获取时间,要么向simpleDB发送不同的时间戳,以便它将是一个小时后。
这是例外:
AmazonServiceException {requesttid:605914f0-94fb-a152-4206-06c2d0b777da, ErrorCode:RequestExpired, Message:Request已经过期。时间戳日期为2013-06-20 09:18:27.431 z。当前日期为2013-06-20T10:18:28Z}
有办法解决这个问题吗?
Amazon只允许服务器和它的请求客户机(用户pc)之间的时间戳变化很小,最多15分钟。由于亚马逊是一个拥有大量用户的大型备份服务器,因此安全性确实非常重要。服务器和请求客户机之间的时间同步对于访问Amazon非常重要。要解决这个问题,您必须调整客户端的时间,使最大时间戳差异达到15分钟。要解决这个问题,请为您的系统设置标准时间和区域。
我在这里找到了答案:链接实现这个目的的代码是:
[AmazonSDKUtil setRuntimeClockSkew:3600.0];
它留给用户计算设备的实际时间,这可以使用CoreLocation来完成。