2015-10-06 4 views
0

Je veux poster une demande au serveur. Cela fonctionne bien si j'utilise NSURLSessionDataTask. Mais en dessous j'ai besoin d'utiliser AFNetworking car mon application entière l'utilise. Mais quand j'essaye de frapper le même service dans AFHTTPSessionManager avec la méthode de POST, il me donne le temps de demande.AFHTTPSessionManager post demande

Ci-dessous les deux codes.

NSError *error; 

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; 
NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration delegate:nil delegateQueue:nil]; 
NSURL *url = [NSURL URLWithString:@"BASE URL"]; 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url 
                 cachePolicy:NSURLRequestUseProtocolCachePolicy 
                timeoutInterval:60.0]; 

[request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
[request addValue:@"application/json" forHTTPHeaderField:@"Accept"]; 

[request setHTTPMethod:@"POST"]; 

NSString *postString = @"1"; 

NSData *data = [postString dataUsingEncoding:NSUTF8StringEncoding]; 
[request setHTTPBody:data]; 


NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 
    NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
}]; 

[postDataTask resume]; 

version kit AFNetworking: -

AFHTTPSessionManager *client = [[AFHTTPSessionManager alloc] initWithBaseURL:[NSURL URLWithString:@"BASE URL"]]; 

NSDictionary *request = @{@"Content-Type":@"application/json", 
          @"Accept":@"application/json", 
          }; 


NSString *postString = @"1"; 

NSData *data = [postString dataUsingEncoding:NSUTF8StringEncoding]; 


[client POST:@"" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
    [formData appendPartWithHeaders:request body:data]; 
} success:^(NSURLSessionDataTask *task, id responseObject) { 
    NSLog(@"%@",responseObject); 
} failure:^(NSURLSessionDataTask *task, NSError *error) { 
    NSLog(@"%@",error); 
}]; 

S'il vous plaît aidez-moi à mettre en œuvre dans le bon sens.

+0

veuillez vous référer au problème ci-joint. Dans mon cas aussi le corps est nul ... http://stackoverflow.com/questions/20774692/afnetworking-multipart-request-body-is-nil – user1071309

Répondre

1

J'ai résolu ce problème en créant ma propre requête et en donnant sa configuration à AFURLSessionManager puis en conservant mon propre objet NSURLSessionUploadTask.

Merci

+0

Ce serait fantastique si vous posiez une partie de la solution. –