网络服务器 NSURL NSURLConnection
Posted
技术标签:
【中文标题】网络服务器 NSURL NSURLConnection【英文标题】:Webserver NSURL NSURLConnection 【发布时间】:2011-12-09 23:21:49 【问题描述】:好的,我正在尝试从我的网络服务器获取文件。但我对一些事情有点困惑。当我使用 NSURL 时,我可以使用这样的 url 获取我的 xml 文件:“localhost ...../bla.xml”。但我也在尝试测试一些东西......比如......如果我与网络服务器建立了开放连接,并且我失去了与互联网的连接,我的应用程序会发生什么?上面使用 NSURL 的方法,我还没有真正建立任何连接,它总是连接的对吗?还是我应该使用 NSURLConnection?
也许这有点令人困惑,因为我很困惑。我希望有人能给我一些我可以研究的信息。
谢谢。
【问题讨论】:
【参考方案1】:看看 NSURLConnection 类。 http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSURLConnection_Class/Reference/Reference.html
创建连接对象并设置超时值,如果您失去连接或连接超时 NSURLConnection 委托方法:- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
被调用,您将收到该事件的通知。
您也可以使用NSURLConnection
sendSynchronousRequest
方法,但强烈建议不要使用该方法,因为它会阻塞线程的运行。
【讨论】:
【参考方案2】:您是否正在尝试访问文件的内容?如果是这样,您将使用以下内容。
NSError *error;
NSURL *url = [NSURL URLwithString:@"localhost/file.html"];
NSString *filecontents = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];
NSString 对象filecontents
将包含您的字符串。
你不可能在这么短的时间内断开连接。如果没有连接,则会将错误应用到error
。
编辑:
如果您想始终保持与服务器的连接,那就另当别论了。
您必须使用 C 的 send()
和 recv()
函数,您可以阅读有关 here 的信息。
我对它了解不多,我自己也在学习,所以你应该问别人如何设置服务器。但是您需要同时运行另一个程序。
【讨论】:
我可以访问我的文件,但你是对的。我不能在这么短的时间内失去联系。所以我有点想建立一个我“总是”连接的连接。我是不是走错了路?以上是关于网络服务器 NSURL NSURLConnection的主要内容,如果未能解决你的问题,请参考以下文章