2011-09-05 73 views
2

我正在研究名爲「Messanger」的應用程序。如何上傳和下載iphone服務器上的數據(ios)

我的任務是上傳和和服務器下載數據.. 我是新來這個,所以我不知道該怎麼做。

  1. 我想與服務器(上傳)共享數據
  2. 我想從服務器(下載)獲取數據

誰能幫我這個? 我需要此代碼。

在此先感謝..

回答

9

你可以使用官方sdk提供的類。

0)通用部分。

首先您應該創建NSURLRequest。例如,NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"apple.com"]];

1)上傳數據。

當您要發送一些數據,你可以在下面的方式使用它(例如,發送XML):

NSString *message = [[NSString alloc] initWithFormat:@"<?xml version=\"1.0\" ?>\n<parameters></parameters>"]; 
NSData* msgData = [message dataUsingEncoding:NSUTF8StringEncoding]; 
NSString *msgLength = [NSString stringWithFormat:@"%d",[msgData length]]; 

[request addValue:@"application/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; 
[request addValue:msgLength       forHTTPHeaderField:@"Content-Length"]; 
[request setValue:@"iOsApp"       forHTTPHeaderField:@"User-agent"]; 

[request setHTTPMethod:@"POST"]; 
[request setHTTPBody:msgData]; 
[message release]; 

2)下載數據。

現在就應該開始連接:

[NSURLConnection connectionWithRequest:request delegate:self]; 

3)實現要緊的委託方法。最後你應該實現你需要的代理方法。例如,在方法- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data中,您將合併收到的數據,在方法- (void)connectionDidFinishLoading:(NSURLConnection *)connection- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error中,您應該處理收到的數據。

有關,你可以實現接收有關您的Internet連接的更多信息,並處理不同的處理(如身份驗證,響應代碼等)中的所有方法的完整列表請參考官方文檔:NSURLConnection

+0

這是一個偉大的答案,但是,有一個技術不準確。內容長度是字節數,而不是字符數。請允許我進行更改。 (參考:http://stackoverflow.com/a/2773411/456434) – Mazyod

+0

@Mazyod謝謝你的版本! – Nekto

2

可以使用ASIHttpRequest庫。有很多例子,希望它能幫助你

相關問題