2016-04-04 20 views
0

Bazı veri ve NSI Nesnesi olarak bir UIImage içeren arka uçuma bir gönderi isteği göndermek istiyorum. Sorun şu ki, AFNetworking 3.0 ile bunun nasıl yapılacağı hakkında hiçbir fikrim yok. Bugüne kadarAFNetworking 3.x veri ve resim ile istek gönderme

Kodum:

NSString *url = [NSString stringWithFormat:@"%@%@", baseURL, @"/postProjectNote"]; 

NSMutableDictionary *dic = [[NSMutableDictionary alloc]init]; 

[dic setObject:session forKey:@"session"]; 
[dic setObject:timestamp forKey:@"timestamp"]; 
[dic setObject:project_id forKey:@"project_id"]; 
[dic setObject:type forKey:@"type"]; 

NSData imagedata = UIImageJPEGRepresentation(myUIImage, 0.8); 

Ben ilerleme çubuğunun her türlü gerekmez. İsteğin başarılı olup olmadığına bir sonuca ihtiyacım var. Arka uç (Laravel 5) bana bir json dizesi veriyor. Form veri ile göndermem gerek.

Başlamama yardım edebilir misiniz?

cevap

2

kullanın bu kod kullanarak bir resmi yayınlama AFNetworking:

AFHTTPRequestOperationManager* manager = [[AFHTTPRequestOperationManager alloc] init]; 
manager.responseSerializer = [AFHTTPResponseSerializer serializer]; 
manager.requestSerializer = [AFJSONRequestSerializer serializer]; 
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"application/json"]; 

NSData *imageData = UIImageJPEGRepresentation(image, 0.5); 
NSMutableDictionary *paramDict = [NSMutableDictionary new]; // Add additional parameters here 
AFHTTPRequestOperation *op = [manager POST:UPDATE_PROFILE_IMAGE parameters:paramDict constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
    [formData appendPartWithFileData:imageData name:@"file" fileName:@"filename" mimeType:@"image/jpeg"]; 
} success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    if (success) { 
     // Success 
    } 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    // Failure 
}]; 
[op start]; 
+0

Bu AFNetworking 2.x ile çalışır 3.x Ancak Göç Eğitimini kullanarak gizlemek kolaydır. – Dafen

0
NSData *imageData = UIImageJPEGRepresentation(image, 0.5);  
    AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc]initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]]; 
    manager.responseSerializer = [AFJSONResponseSerializer serializer]; 
    [manager.requestSerializer setValue:token forHTTPHeaderField:@"Authorization"]; 
    [manager.requestSerializer setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData]; 
    manager.responseSerializer.acceptableContentTypes =[NSSet setWithObjects:@"text/html",@"application/json",nil]; 

    [manager POST:encoded parameters:"the params you want to pass" constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) { 
    [formData appendPartWithFileData:imageData 
           name:"image name with timestamp" 
          fileName:@"image_upload_file" 
          mimeType:[NSString mimeTypeForImageData:data]]; 
} progress:^(NSProgress * _Nonnull uploadProgress) { 
    //DLog(@"Progress = %@",uploadProgress); 
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { 
    //DLog(@"Response = %@",responseObject); 
    completion(YES,responseObject,nil); 
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { 
    completion(NO,nil,error); 
    //DLog(@"Error: %@", error); 
}];