2010-10-14 63 views
0

我正在開發混合應用程序(rails 3 + iPhone),我想將大量字符串和圖像發送到rails 3服務器。我想從iPhone做一個POST方法。有人可以幫助我如何做到這一點?因爲在這種情況下,視圖中將沒有形式,我應該如何接受數據?在此先感謝如何將xml或圖像數據從iphone發送到rails 3服務器?

回答

0

這裏是通過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的多個線路包括其他領域。

+0

謝謝。但你知道如何在沒有窗體的rails中接受HTTP post請求嗎? – samdeV 2010-10-14 21:38:20

+0

答:我想通過ASIFormDataRequest http://allseeing-i.com/ASIHTTPRequest/How-to-use – samdeV 2010-11-01 17:57:52

相關問題