我开发了一个请求令牌来执行所有HTTPRequest的应用程序。 我管一类中的所有100个不同的请求被称为NVEngine
在那里我打电话给他们,如:处理会话过期的iOS HTTPRequest
- (void) sendRequest:(NSURLRequest *)theRequest withRequestType:(NVRequestType)requestType {
NVURLConnection *conn = [[NVURLConnection alloc] initWithRequest:theRequest
delegate:self
requestType:requestType];
if (!conn) {
NVLog(@"+++++++++++++++++++++++ UNABLE TO CREATE CONNECTION");
}
}
的问题是,这个请求的结果可能是“会话过期”,在这种情况下我必须做一个重新认证的http请求来刷新令牌,然后在没有用户交互的情况下重新调用相同的先前请求。我如何在我的sendRequest
方法上管理回调?来自- (void) parseResultForConnection:(NVURLConnection *)connection
之一?如果我可以返回sendRequest
,我可以首先执行同步请求来检索新令牌,然后重试我以前的HTTPCall。
PS:我已经看到这个主题的一些答案,如Session expire design pattern 但我没有找到什么是我正在寻找。
你是否尝试实现'NSURLConnectionDelegate'和/或'NSURLConnectionDataDelegate'? – Daniel 2014-11-06 09:34:46
parseResultForConnection已经是委托的实现了,我不明白你的问题。你可以说得更详细点吗? :) – fustalol 2014-11-06 09:45:49
好的,你正在使用一个甚至没有谷歌意识到的自定义类。所以没有人能够帮助你如何使用它。但是,通常情况下,您只需在'connectionDidFinishLoading:'解析接收到的数据,并且如果您收到'session expired',您只需发送一个新请求以获取新令牌并重试之前的连接。当使用'NSURLConnection'即 – Daniel 2014-11-06 09:54:18