2015-10-06 142 views
0

我想發佈請求到服務器。如果我使用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

回答

1

我通過創建自己的請求並將其配置賦予AFURLSessionManager然後持有我自己的NSURLSessionUploadTask對象來解決此問題。

謝謝

+0

這將是太棒了,如果你發佈了一些解決方案。 –