2015-05-21 4 views
2

Проблема в том, что сервер возвращает объект json, но говорит, что «выберите файл», хотя я передаю данные как NSData, вызвав функцию appendPartWithFormData.Невозможно использовать AFNetworking в приложении iOS

Пожалуйста, помогите мне, я застрял на этой части в течение длительного времени.

Спасибо

// Defining dictionary parameters 
NSMutableDictionary* _params = [[NSMutableDictionary alloc] init]; 
[_params setObject:regId forKey:@"id"]; 
[_params setObject:email forKey:@"email"]; 
[_params setObject:password forKey:@"password"]; 
[_params setObject:_formatedDate forKey:@"datesel"]; 
[_params setObject:self.documentDescription.text forKey:@"description"]; 
[_params setObject:self.documentName.text forKey:@"name"]; 
[_params setObject:self.documentType.text forKey:@"type"]; 
[_params setObject:@"no" forKey:@"isDepedent"]; 

NSData *imageData = UIImageJPEGRepresentation(self.finalImage.image, 1.0); 


AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 

[manager POST:url parameters:_params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) 
{ 
    [formData appendPartWithFormData:imageData name:@"image"]; 
}success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    NSLog(@"Success %@",responseObject); 

    UIAlertView *Alert_Success_fail = [[UIAlertView alloc] initWithTitle:@"myappname" message:string delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil, nil]; 
    [Alert_Success_fail show]; 
} 
failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"Fail "); 

    UIAlertView *Alert_Success_fail = [[UIAlertView alloc] initWithTitle:@"myappname" message:[error localizedDescription] delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil, nil]; 
    [Alert_Success_fail show]; 
}]; 



OUTPUT - Success { 
    data =  { 
     message = "Please select file."; 
     status = 0; 
    }; 
} 
+0

Сначала проверьте, работает ли ваш почтовый запрос в Postman, https: //chrome.google.com/webstore/detail/postman-rest-client/fdmmgilgnpjigdojojpjoooidkmcomcm? Hl = ru Если вы получите тот же ответ там, то есть проблема с вашего конца, если вы получаете успех там, тогда попробуйте отладить ваш код. – Vizllx

+0

'po imagedata' не ноль? –

+0

Это полностью зависит от ожидаемого сервера. Невозможно определить правильность кода клиента или нет. – mattt

ответ

0

вы можете сохранить изображение в виде файла, а затем загрузить файл. AFNetWorkSample:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
NSDictionary *parameters = @{@"foo": @"bar"}; 
NSURL *filePath = [NSURL fileURLWithPath:@"file://path/to/image.png"]; 
[manager POST:@"http://example.com/resources.json" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
    [formData appendPartWithFileURL:filePath name:@"image" error:nil]; 
} success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    NSLog(@"Success: %@", responseObject); 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"Error: %@", error); 
}]; 

, если он не работает, может быть что-то не так с вашим сервером.

+0

Это не работает, и сервер прекрасен, так как приложение Android успешно загружает изображение. –

Смежные вопросы