如何使用afnetworking 2.0发送大数据字典数组

时间:2014-03-24 12:27:50

标签: ios objective-c arrays afnetworking-2

我有大量的词典和旅行数据。我想在所有一个请求中发送它,但我希望在每个字典发送后得到响应。我使用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);
 }];

}

1 个答案:

答案 0 :(得分:0)

你应该研究HTTP Pipelining。这不是AFNetworking必然会帮助你的东西。 HTTP请求的“标准”模型是1个请求输入,1个响应输出。存在Keep-Alive和Pipelining等优化,但需要做更多工作才能真正利用。