Как отправить данные xml или изображения с iphone на сервер rails 3? - PullRequest
0 голосов
/ 14 октября 2010

Я занимаюсь разработкой гибридного приложения (rails 3 + iPhone) и хочу отправить несколько больших строк и изображений на сервер rails 3.Я хочу сделать метод POST от iPhone.Может кто-нибудь помочь мне, как это сделать?так как в этом случае не будет формы в представлениях, как я должен принять данные?Заранее спасибо

1 Ответ

0 голосов
/ 14 октября 2010

Вот код для загрузки изображения через POST на URL:

UIImage *myImage = [UIImage imageNamed:@"example.png"];

NSData *imageData = UIImageJPEGRepresentation(myImage, 0.9);

NSString *url = [NSURL URLWithString:@"http://postingurl.com/posthere"];

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:url];
[request setHTTPMethod:@"POST"];

NSString *boundary = @"---------------------------14737809831466499882746641449";
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
[request addValue:contentType forHTTPHeaderField: @"Content-Type"];

NSMutableData *body = [NSMutableData data];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary]    dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:@"Content-Disposition: form-data;     name=\"fileid\"; filename=\"myfile.png\"\r\n"]
               dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:imageData];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];

[request setHTTPBody:body];

NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil e    rror:nil];
[request release];

//Log return..
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(returnString);
[returnString release];

Вы добавляете больше строк для Content-Disposition для включения других полей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...