2017-02-16 20 views
0

У меня возник вопрос при загрузке изображения с другими параметрами. С AFNetworking 3,0Многочастные данные с изображением и другие параметры в AFNetworking 3.0

com.alamofire.serialization.response.error.data = < 7b227374 61747573 223a2246 41494c55 5245222c 22737461 74757343 6f646522 3a353030 7d>, NSLocalizedDescription = Ошибка запроса: Внутренняя ошибка сервера (500)} Я получаю

NSMutableDictionary *getUpdates= [[NSMutableDictionary alloc]init]; 
NSString*[email protected]"3"; 
[getUpdates setObject:userID forKey:@"userId"]; 
[getUpdates setObject:phoneNumTF.text forKey:@"mobileNumber"]; 
[getUpdates setObject:nameTF.text forKey:@"name"]; 
[getUpdates setObject:workZipCodeTF.text forKey:@"work"]; 
[getUpdates setObject:homeZipCodeTF.text forKey:@"home"]; 

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; 

[manager POST:kUpdateProfile_Post parameters:getUpdates constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
    [formData appendPartWithFileData:ImageData 
           name:@"files" 
          fileName:@"picture" mimeType:@"image/jpeg"]; 
} progress:nil success:^(NSURLSessionDataTask *task, id responseObject) { 
    NSLog(@"Response: %@", responseObject); 
} failure:^(NSURLSessionDataTask *task, NSError *error) { 
    NSLog(@"Error: %@", error); 
}]; 

Здесь мне нужно отправить как эти данные изображение: имя файла JSON: { "имя": "Хариш", "работа": 92121, "идентификатор пользователя": 3, "MobileNumber": 33663366, "домой": "500025"}

Любая помощь?

+0

Можете ли вы быть более конкретным, какие ошибки вы столкнулись? – ystack

+0

не удалось: внутренняя ошибка сервера (500) –

+0

Ну, если это 500, то в большинстве случаев это проблема на стороне сервера, а не в приложении. Вы должны проверить, может ли какой-либо другой клиент (android/web) загружать изображения. – ystack

ответ

0

// Словарь, который содержит параметры сообщения. Вы можете установить параметры сообщений, которые ваш сервер принимает или запрограммировал для принятия.

NSUserDefaults *def = [NSUserDefaults standardUserDefaults]; 
NSString*userID = [def objectForKey:@"UserId"]; 
NSMutableDictionary *getUpdates= [[NSMutableDictionary alloc]init]; 
[getUpdates setObject:userID forKey:@"userId"]; 
[getUpdates setObject:phoneNumTF.text forKey:@"mobileNumber"]; 
[getUpdates setObject:nameTF.text forKey:@"name"]; 
[getUpdates setObject:workZipCodeTF.text forKey:@"work"]; 
[getUpdates setObject:homeZipCodeTF.text forKey:@"home"]; 


[MBProgressHUD showHUDAddedTo:self.view animated:true]; 

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; 
manager.responseSerializer = [AFHTTPResponseSerializer serializer]; // only needed if the server is not returning JSON; if web service returns JSON, remove this line 


[manager POST:kUpdateProfile_Post parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
    NSError *error; 
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:getUpdates options:0 error:&error]; 
    NSAssert(jsonData, @"Failure building JSON: %@", error); 


    NSDictionary *jsonHeaders = @{@"Content-Disposition" : @"form-data; name=\"json\"", 
            @"Content-Type"  : @"application/json"}; 
    [formData appendPartWithHeaders:jsonHeaders body:jsonData]; 

    if (ImageData) { 
     [formData appendPartWithFileData:ImageData name:@"picture" 
           fileName:@"image.jpg" 
           mimeType:@"image/jpeg"]; 
    } 
} progress:nil success:^(NSURLSessionDataTask *task, id responseObject) { 
    NSLog(@"Response: %@", responseObject); 

    NSError* error; 
    NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseObject 
                 options:kNilOptions 
                  error:&error]; 
    NSLog(@"error appending part: %@", json); 

    [MBProgressHUD hideHUDForView:self.view animated:true]; 

    [self.navigationController popViewControllerAnimated:YES]; 

} failure:^(NSURLSessionDataTask *task, NSError *error) { 
    NSLog(@"Error: %@", error); 
    [MBProgressHUD hideHUDForView:self.view animated:true]; 

}]; 

Наконец я получил этот код

0

две возможности,

  • Может быть вы отправляете посылки некоторые параметры называют разные
  • разработчик сервера делает что-то неправильно на внутреннем интерфейсе

Обсудить этот вопрос с ним, попросите его отладить каждый если вы сделали запрос.

+0

изображения: Имя файла JSON: { "имя": "Хариш", "работа": 92121, "идентификатор пользователя": 3, "MobileNumber": 33663366, "домой": «500025» } Это мои параметры –

+0

{status code: 500, headers { "Content-Length" = 37; «Content-Type» = «application/json; charset = UTF-8»; Дата = "Чт, 16 февраля 2017 года 12:44:38 GMT"; }} –

0

Проверьте ниже вещи с вашим кодом:

1) Убедитесь, что ImageData не должно быть ноль.

2) Проверьте тип шахты с вашим сервером тип мины. Возможно, оба они разные.

3) Проверьте имя ключа с вашим именем api.

+0

мой тип все приемлемо, я отправляю jpeg –

+0

Пришлите мне имя api. Я создам для вас небольшую демоверсию. – Nirmalsinh

+0

picture: filename json: {"name": "harish", "work": 92121, "userId": 3, "mobileNumber": 33663366, "home": "500025"} Мне нужно отправить так –

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

  • Нет связанных вопросов^_^