AFHTTPSessionManager发布请求

问题描述:

我想发布请求到服务器。如果我使用NSURLSessionDataTask,它工作正常。但在我下面我需要使用AFNetworking,因为我的整个应用程序正在使用它。但是当我试图用POST方法在AFHTTPSessionManager中击中相同的服务时,它会让我请求超时。AFHTTPSessionManager发布请求

以下是两个代码。

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]; 

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); 
}]; 

请帮我在正确的方式来实现它。

+0

请参考附带的问题。在我的情况下,身体也是零... http://stackoverflow.com/questions/20774692/afnetworking-multipart-request-body-is-nil – user1071309

我通过创建自己的请求并将其配置赋予AFURLSessionManager然后持有我自己的NSURLSessionUploadTask对象来解决此问题。

谢谢

+0

这将是太棒了,如果你发布了一些解决方案。 –