Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Use of undeclared identifier AFHTTPClient

Hi I am trying to compile following code but getting error Use of undeclered identifier AFHTTPClient:

NSData* fileNameData = [fileName dataUsingEncoding:NSUTF8StringEncoding];

NSDictionary *sendDictionary =
    [NSDictionary dictionaryWithObject:fileNameData forKey:@"fileName"];

AFHTTPClient *httpClient =
    [[AFHTTPClient alloc] initWithBaseURL:@"http://www.olcayertas.com"];

NSMutableURLRequest *afRequest =
    [httpClient multipartFormRequestWithMethod:@"POST"
        path:@"/photos"
        parameters:sendDictionary
        constructingBodyWithBlock:^(id <AFMultipartFormData>formData) {
            [formData appendPartWithFileData:photoImageData
                name:self.fileName.text
                fileName:filePath
                mimeType:@"image/jpeg"];
        }];

AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:afRequest];
[operation setUploadProgressBlock:^(NSInteger bytesWritten, NSInteger totalBytesWritten, NSInteger totalBytesExpectedToWrite) {

    NSLog(@"Sent %d of %d bytes", totalBytesWritten, totalBytesExpectedToWrite);

}];

[operation setCompletionBlock:^{
    //NSLog(@"%@", operation.responseString); //Gives a very scary warning
}];

[operation start];

I am useing CocoaPods and here is my pod file:

platform :ios, '7'
pod 'AFNetworking', '~> 2.0'
pod 'AFNetworking/NSURLSession', '~> 2.0'
like image 769
Olcay Ertaş Avatar asked Jan 28 '14 14:01

Olcay Ertaş


2 Answers

You're including AFNetworking 2.0, but AFHTTPClient doesn't exist in 2.0 - it was a 1.0 feature. Check the migration guide but AFHTTPClient has been replaced by AFHTTPRequestOperationManager and AFHTTPSessionManager.

Also take a look at the example app for 2.0 - AFAppDotNetAPIClient now subclasses AFHTTPSessionManager.

like image 123
James Frost Avatar answered Nov 08 '22 00:11

James Frost


In AFNetworking 3.0 you need to use AFHTTPSessionManager instead of AFHTTPRequestOperationManager, because AFHTTPRequestOperationManager was removed

like image 34
Paul T. Avatar answered Nov 08 '22 01:11

Paul T.