возникли проблемы с загрузкой изображения из iphone Photo Picker на сервер с помощью ASIFormDataRequest - PullRequest
0 голосов
/ 28 июня 2010

В основном я пытаюсь загрузить изображение с помощью ASIFormDataRequest. Это мой следующий код

ASIFormDataRequest *request = [ASIHTTPRequest requestWithURL:urlImg];
[request setRequestMethod:@"POST"];
[request addRequestHeader:@"Content-Type" value:@"application/xml"];
[request setDelegate:self];

[request setTimeOutSeconds:500];  
NSData *imageData = UIImagePNGRepresentation([info objectForKey:@"UIImagePickerControllerOriginalImage"]);
[request setData:imageData forKey:@"media"];
[request startAsynchronous];

В основном, мое приложение перестало работать и выдает следующую ошибку:

[ASIHTTPRequest setData:forKey:]: unrecognized selector sent to instance 0x8880db0
2010-06-28 12:33:49.803 vdq[7658:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[ASIHTTPRequest setData:forKey:]: unrecognized selector sent to instance 0x8880db0'

Не знаю почему, но метод setData, похоже, в этом случае.

1 Ответ

2 голосов
/ 28 июня 2010

Пара вещей.Причина, по которой вы получаете это, заключается в первой строке:

ASIFormDataRequest *request = [ASIHTTPRequest requestWithURL:urlImg];

создает новый объект типа ASIHTTPRequest.Вам нужно сделать:

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:urlImg];

Кроме того, вам не нужно устанавливать RequestMethod, поскольку это делается автоматически.Наконец, если сервис действительно нуждается в загруженном документе XML.Тогда вы не сможете использовать FormData.Формат данных возможен только в том случае, если вы загружаете данные, которые соответствуют форме HTML, и закодированы с помощью составной формы или URL-кодированных данных.Если для этого требуется XML, вам необходимо создать XML-документ самостоятельно, а затем опубликовать данные из этого документа.

...