2011-09-05 74 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库。有很多例子,希望它能帮助你

相关问题