通过AFNetworking获取服务器时间

蓝咒 提交于 2019-11-29 00:51:02

在一些场合,我们需要获取服务器的时间,计算该时间与客户端本地时间的差值,以利于时间同步。有人说,这个不是很简单吗,让后台的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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!