Я знаю, что на этот вопрос был дан ответ несколько раз, но я попробовал все ответы без везения. Я не думаю, что я делаю что-то принципиально неправильное, но что-то здесь совершенно не так.AFNetworking 2 - Загрузка изображения - Не удалось выполнить запрос: не поддерживается тип носителя (415)
Я использую следующий код для загрузки файлов PNG в tinypng.com. Насколько я могу видеть, сама загрузка работает, но я получаю сообщение об ошибке: Не удалось выполнить запрос: неподдерживаемый тип носителя (415)
Изображения Я использую загружаются в формате JPEG, а затем изменены и преобразованы в формат PNG. Сохраненные файлы в порядке. Теперь я хочу отправить их в TinyPNG API, прежде чем я сохраню их на диске.
Если у кого-то есть идея, что случилось или у вас есть опыт работы с этим сервисом, пожалуйста, дайте мне знать. Спасибо заранее!
Подробное сообщение об ошибке
Error Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: unsupported media type (415)"
UserInfo=0x6000000e4900 {
com.alamofire.serialization.response.error.response=<NSHTTPURLResponse: 0x600000220200> { URL: https://api.tinypng.com/shrink }
{
status code: 415, headers {
Connection = "keep-alive";
"Content-Length" = 77;
"Content-Type" = "application/json; charset=utf-8";
Date = "Tue, 16 Dec 2014 20:24:16 GMT";
Server = "Apache/2";
"Strict-Transport-Security" = "max-age=31536000";
"X-Powered-By" = "Voormedia (voormedia.com/jobs)";
}
},
NSErrorFailingURLKey=https://api.tinypng.com/shrink,
com.alamofire.serialization.response.error.data=<7b226572 726f7222 3a224261 64536967 6e617475
7265222c 226d6573 73616765 223a2244 6f657320 6e6f7420 61707065 61722074 6f206265 20612050
4e47206f 72204a50 45472066 696c6522 7d>,
NSLocalizedDescription=Request failed: unsupported media type (415)
}
код я использую
-(void) uploadImage:(NSImage *)image {
AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:TINY_PNG_URL]];
CGImageRef cgRef = [image CGImageForProposedRect:NULL
context:nil
hints:nil];
NSBitmapImageRep *newRep = [[NSBitmapImageRep alloc] initWithCGImage:cgRef];
[newRep setSize:[image size]]; // if you want the same resolution
NSData *imageData = [newRep representationUsingType:NSPNGFileType properties:nil];
NSDictionary *parameters = @{@"username": USERNAME, @"password" : PASSWORD};
AFHTTPRequestOperation *operation = [manager POST:@"" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
//append image
[formData appendPartWithFileData:imageData
name:@"filename"
fileName:@"photo.png"
mimeType:@"image/png"];
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Success: %@ ***** %@", operation.responseString, responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@ ***** %@", operation.responseString, error);
}];
[operation start];
}