我有大量的词典和旅行数据。我想在所有一个请求中发送它,但我希望在每个字典发送后得到响应。我使用afnetworking 2.0并使用AFHTTPRequestSerializer序列化器。
更新。我现在使用这种方法,但是如果用户获得大量数据,则存在在互联网不良的情况下可能被中断的风险。我必须知道已经发送了什么旅行
- (void)sendTripData:(NSArray*)trips
withSuccessBlock:(RequestSuccessBlockWithDict)successBlock
failureBlock:(FailureBlock)failureBlock
{
NSString* path = @"add_trips";
NSDictionary *params = @{@"trips":trips,
@"mobile_id":[[UIDevice currentDevice].identifierForVendor UUIDString]};
[self POST:path
parameters:params
success:^(AFHTTPRequestOperation *operation, id responseObject)
{
NSLogLight(@"Full data trips send success");
if ([responseObject isKindOfClass:[NSDictionary class]])
{
NSDictionary* dict = (NSDictionary*) responseObject;
if ([dict[@"status"] isEqualToString:@"ok"])
{
successBlock(responseObject);
}
else
{
failureBlock(nil);
}
}
else
{
failureBlock(nil);
}
}
failure:^(AFHTTPRequestOperation *operation, NSError *error)
{
NSLogLight(@"Full data trips send failed");
NSString* errorReason = nil;
if (operation.response)
{
errorReason = error.localizedRecoverySuggestion;
}
failureBlock(errorReason);
}];
}
答案 0 :(得分:0)
你应该研究HTTP Pipelining。这不是AFNetworking必然会帮助你的东西。 HTTP请求的“标准”模型是1个请求输入,1个响应输出。存在Keep-Alive和Pipelining等优化,但需要做更多工作才能真正利用。