【发布时间】:2014-09-18 01:50:27
【问题描述】:
我正在遍历一个包含少量字符串的数组,并为每个字符串向 Web 服务器发出请求 数组中的字符串。
我希望在将后续请求发送到服务器之前完成每个请求的处理。因为每个请求都会向我发送一个响应,我将在下一个请求中发送,依此类推。
我遇到的问题是我的 NSURLConnection 是使用标准异步调用设置的。这导致请求不会阻塞任何后续请求。但是我需要在第一次完成之前阻止循环中的其他请求。
请求 URL 始终相同,只有 JSON 数据会随着循环中的每个请求而变化。 这是我的代码
for (int i = 0; i < array.count; i++)
{
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:finalJSON options:NSJSONWritingPrettyPrinted error:&error];
if (!jsonData) {
NSLog(@"Error creating JSON object: %@", [error localizedDescription]);
}
NSString *url = [NSString stringWithFormat:@“abc.com/folders”];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
[request setValue:@"application/json;charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[request setValue:APIKEY forHTTPHeaderField:@"X_API_KEY"];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:jsonData];
//I am adding all connections to NSDictionary so that later I can process request.
NSURLConnection *connection = [self connectionForRequest:request];
[connection start];
}
【问题讨论】:
-
有什么问题??? “我遇到的问题是我的 NSURLConnection 是使用标准异步调用设置的。这导致请求不会阻塞任何后续请求。”???
-
嘿@gran33,我只想在收到第一个响应时才开始第二个连接..但是这里发生的事情是,请求是并行发出的
-
这是一个类型错误...看看我更新的编辑
-
好的,看我的下一个答案...
-
@Ranjit - 考虑递归解决方案。
标签: ios nsurlconnection