Dalein
@Dalein
iOS developer

Отправка изображения ВК POST запросом?

В документации ВК о посте изображения на стену написано следующее:
Загрузка фотографий на стену пользователя осуществляется в 3 этапа:

1. С помощью метода photos.getWallUploadServer приложение узнает http-адрес для загрузки фотографии на стену текущего пользователя, другого пользователя или группы в зависимости от переданных параметров user_id или group_id.

2. Приложение формирует POST-запрос на полученный адрес.
Запрос должен включать поле photo, содержащее файл с изображением (JPG, PNG, BMP или GIF)

Я на втором этапе, и очевидно никак не могу правильно отправить данные с изображением, так как в ответе приходит:
{"server":623218,"photo":"[]","hash":"72e9c4410f469435158d7557d46871c3"}


Перепробовал много вариантов, один из:
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:strUrl]
                                                           cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:15.0];
    request.HTTPMethod = @"POST";
    
    if (params) {
        
        UIImage *yourImage= [UIImage imageNamed:@"share.png"];
        NSData *imageData = UIImagePNGRepresentation(yourImage);
        NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long)[imageData length]];
        
        // Init the URLRequest
        [request setValue:@"image/png" forHTTPHeaderField:@"Content-Type"];
        [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
        [request setHTTPBody:imageData];
    }
    else {
        [request addValue:@"text/xml; charset=utf-8; multipart/form-data;" forHTTPHeaderField:@"Content-Type"];
    }
    
    connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
    
    if (connection) {
        NSLog(@"Connecting...");
        _receivedData = [[NSMutableData alloc] init];
    } else
    {
        // при попытке соединиться произошла ошибка
        NSLog(@"Connecting error");
    }


Оcновной вопрос, как правильно включать в запрос поле с менем photo, содержащее файл с изображением?
  • Вопрос задан
  • 2629 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы