我在iOS应用中使用ASIHTTPRequest。每个POST请求都需要一个有效的身份验证令牌。我通过在应用程序的开头发出auth / request来获得服务器的身份验证令牌。
身份验证令牌每30分钟左右到期。如果我需要一个新令牌,我会在响应中收到301错误,然后我再次生成auth / request以获取新的有效令牌。
这是我遇到的问题:我向服务器发布了一些内容,比如照片上传,然后返回301,因为是时候获得新的身份验证令牌了。我做了auth / request,但后来我失去了对新auth令牌的原始请求。我可以找到一种方法来保持旧请求并在新令牌到位时重新开始,但我认为在框架内有一种更简单/更好的方法可以做到这一点,在获得之后会再次自动启动我的原始请求有效令牌。
感谢任何帮助。
答案 0 :(得分:1)
我提出了一个很好的解决方案。我要做的是将ASIHTTPRequest对象添加到数组中。事实上,我将所有请求添加到数组中,并在成功处理后删除它们。一些代码要演示:
ASIFormDataRequest *asiRequest = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:urlString]];
asiRequest.delegate = self;
[asiRequest addPostValue:value forKey:@"key"];
[asiRequest startAsynchronous];
if (!requests) {
requests = [[NSMutableArray alloc]init];
}
[requests addObject:asiRequest];
所以现在你有一个数组中的请求对象。当请求完成时,如果我需要获得一个新的身份验证令牌,我会发出请求,获取它,然后遍历请求数组并使用新的身份验证令牌发出这些请求,如下所示:
for (ASIFormDataRequest *asiRequest in requests) {
[asiRequest startAsynchronous];
}