Search code examples
iosafnetworking-2

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'

Solution

  • 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.