2017-02-15 9 views
0

Я использую приведенный ниже код для загрузки изображения на сервер.Ошибка выгрузки изображения в ios

NSString *url = [NSString stringWithFormat:@"http://192.250.1.52:xxx/api/user/profileUploadUser?userid=27&[email protected]"]; 

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

[jsonDict setObject:ImageToUpload forKey:@"file"]; 

////////ImageToUpload = /var/mobile/Containers/Data/Application/89112E0B-C1D6-4408-8586-6C5B4A431713/Documents/61.png 

    [manager POST:url parameters:jsonDict 
     success:^(AFHTTPRequestOperation *operation, id responseObject) 
    { //////success code } 


     failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
      UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Image upload" message:@"failure" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
      [alert show]; 
      NSLog(@"error message %@",error); 
      // handle failure 
     }]; 

Он всегда входят в блок отказов и показывает сообщение об ошибке.

сообщение об ошибке: Error Domain = NSURLErrorDomain Code = -1001 «Запрос недействителен». UserInfo = {NSErrorFailingURLStringKey = http://192.250.1.52:xxxx/api/user/profileUploadUser?userid=27&[email protected], _kCFStreamErrorCodeKey = -21022}}}

+0

использовать многоформатные данные для загрузки изображения на сервер –

+0

Можно ли отправить путь к файлу изображения с использованием многомерных данных. – Lenin

+0

путь к файлу является динамическим, как вы будете извлекать то же самое –

ответ

0

Проверьте вашу скорость интернет может быть медленным,

[manager.requestSerializer setTimeoutInterval:30];//Set request timeout interval time & interact with backend developer for same. 

Еще одна вещь, которую вы можете управлять одним retry counter в singleton & дают второй запрос если сбой &, если снова не удается, то покажите сообщение с тостом, скорость интернета будет медленной.

+0

Достаточно того, сколько раз вам нужно дать запрос и не забудьте перезагрузить' retryCounter' в 0 снова в обоих условиях (я имею в виду сброс retryCounter в ноль как только вы в успешном блоке или сообщите сообщение об ошибке тоста) –

+0

Здесь я помещаю код интервала времени ожидания, но это не решает мою проблему. AFHTTPRequestOperationManager * manager = [AFHTTPRequestOperationManager manager]; manager.responseSerializer = [AFHTTPResponseSerializer serializer]; manager.requestSerializer = [AFJSONRequestSerializer serializer]; manager.requestSerializer.timeoutInterval = 30; – Lenin

+0

Задайте временной интервал до 60 и проверьте и даже не сработал, тогда вы можете управлять одним синглэтом «retryCounter», дважды запрашивая запрос, и даже если вы не справитесь, вам нужно обработать тост-сообщение, что ** Попробуйте снова, запросите Time Out ** из-за скорости интернета вопрос. Я не думаю, что проблема отличается от скорости интернета и, пожалуйста, за промежуток времени запроса, который вы можете обсудить один раз с разработчиком бэкэнд. если у вас есть другое решение, дайте мне знать –

0

Вы пытаетесь выполнить операцию POST, тогда как то, что вы хотите, является file upload.
Попробуйте AFNetworking multipart Загрузка файла.

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

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