В документации ВК о посте изображения на стену написано следующее:
Загрузка фотографий на стену пользователя осуществляется в 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, содержащее файл с изображением?