通过AFNetworking获取服务器时间

在一些场合,我们需要获取服务器的时间,计算该时间与客户端本地时间的差值,以利于时间同步。有人说,这个不是很简单吗,让后台的TX给你一个获取服务器时间的接口就行了。

其实这个还是比较麻烦的,更简单的是利用HTTP Header来获取服务器时间——每个HTTP header的Date参数就是这个时间。在iOS中我们通常用AFNetworking发请求,那么用AFNetworking怎么得到HTTP header信息呢?

很简单,用 [[operation response] allHeaderFields]   就行。

后记:

我还是想得太简单了,在iOS中想把上图中HTTP头的时间换成NSDate,怎么试都不行,后来才发现,虽然你可能指定时间为"EEE, d MMM yyyy HH:mm:ss zzz",但还需要额外的设置。

最后,找到了一份开源的代码解决了此问题:https://github.com/mwaterfall/MWFeedParser/blob/master/Classes/NSDate+InternetDateTime.m(ARC) 

使用方法:

NSDate* inputDate = [NSDate dateFromInternetDateTimeString:dateServer formatHint:DateFormatHintRFC822];

或者:

NSDate* inputDate = [NSDate dateFromRFC822String:dateServer];


参考:http://stackoverflow.com/questions/12351464/reading-afnetworking-response-headers

你可能感兴趣的:(通过AFNetworking获取服务器时间)