`
jsntghf
  • 浏览: 2532726 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

NSURLConnection的用法

    博客分类:
  • iOS
阅读更多

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:TOP_APPS_URL]];
NSURLConnection *topAppsConnection = [[[NSURLConnection alloc] initWithRequest:request delegate:self] autorelease];
if (topAppsConnection)
    self.topAppsData = [NSMutableData data];
 

下面是NSURLConnection的几个代理方法:

 

#pragma mark NSURLConnectionDelegate
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
    NSInteger status = [(NSHTTPURLResponse *)response statusCode];
    
    if (status != 200)
        [self cancel:connection];
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    [topAppsData appendData:data];
}

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
    [self cancel:connection];
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
    NSString *topAppsString = [[[NSString alloc] initWithData:topAppsData encoding:NSUTF8StringEncoding] autorelease];
    self.topAppsData = nil;
    
    @try {
        RootViewController *rootViewController = (RootViewController *)[navigationController.viewControllers objectAtIndex:0];
        rootViewController.topApps = [[[topAppsString JSONValue] objectForKey:@"feed"]objectForKey:@"entry"];
        [self.window addSubview:navigationController.view];
    }
    @catch (NSException *e) {
        
    }
}

 

接下来,就是这几个代理方法中用到的cancel:函数的实现:

 

- (void)cancel:(NSURLConnection *)connection {
    [connection cancel];
    self.topAppsData = nil;
}

 

具体的例子可以到自定义UIScrollView进行下载。

分享到:
评论

相关推荐

    NSURLConnection

    在Android环境中,虽然不直接使用NSURLConnection,但这个概念可以帮助理解网络通信的基础知识,特别是当我们考虑跨平台开发时。 首先,远程摄像头监控程序通常涉及通过网络传输视频流或静态图像。在iOS和Android...

    NSURLConnection类写的webservice调用类

    2. 设置代理:NSURLConnection使用代理模式,你需要实现NSURLConnectionDelegate和NSURLConnectionDataDelegate协议的方法。这些方法会在请求的不同阶段被调用,例如开始加载、接收到数据、请求完成等。 3. 启动连接...

    iOS 断点续传(NSURLConnection简易封装)

    2. **初始化`NSURLConnection`**:使用`NSURLConnection`的`initWithRequest:delegate:startImmediately:`方法初始化连接,传入请求对象和代理对象。 3. **代理方法**: - `connection:didReceiveResponse:`:在这...

    通过 NSURLConnection 进行异步下载

    同时,为了优化性能和用户体验,可以考虑使用`NSURLSession`代替`NSURLConnection`,因为前者提供了更多的功能和更好的性能。但`NSURLConnection`对于简单的异步下载任务仍然是一个有效且实用的选择。

    NSURLConnection使用demo

    接着,我们可以选择创建一个NSURLConnection实例并启动请求,或者使用类方法`+[NSURLConnection sendAsynchronousRequest:queue:completionHandler:]`发起异步请求。 对于处理中文字符,NSURLConnection可能会遇到...

    使用NSURLConnection实现单点下载

    通过调用NSURLConnection的start方法,我们可以发起一个请求,并在接收到服务器响应时回调我们预先设置的代理方法。这种异步特性使得应用可以在等待数据返回的同时执行其他任务,提高用户体验。 为了实现单点下载,...

    iOS中使用NSURLConnection处理HTTP同步与异步请求

    在iOS7后,NSURLSession基本代替了NSURLConnection进行网络开发,在iOS9后,NSURLConnection相关方法被完全的弃用,iOS系统有向下兼容的特性,尽管NSURLConnection已经被弃用,但在开发中,其方法依然可以被使用,...

    iOS基础——网络请求之NSURLConnection、NSURLSessionDataTask

    使用NSURLConnection时,通常需要实现NSURLConnectionDelegate和NSURLConnectionDataDelegate协议,以便处理请求的开始、数据接收、错误以及完成等事件。 创建一个NSURLConnection请求的基本步骤如下: 1. 创建一...

    封装网络请求类--AFNetworking、NSURLConnection

    封装`NSURLConnection`时,我们需要创建一个请求对象,设置请求头和参数,然后通过代理方法监听网络请求的状态,如请求开始、结束、数据接收等。回调通常通过实现`NSURLConnectionDataDelegate`和`...

    将类似NSURLConnection的同步任务引入NSURLSession

    早期,Objective-C的开发者通常使用NSURLConnection来执行这些任务,但随着iOS 7的发布,Apple引入了更现代、更高效的NSURLSession API。本篇文章将深入探讨如何将原本使用NSURLConnection的同步任务转换为使用...

    swift-基于NSURLConnectionNSURLSessionAFNetworking方式实现文件下载功能

    本教程将探讨使用`NSURLConnection`、`NSURLSession`以及第三方库`AFNetworking`在Swift中进行文件下载的方法。这些方法各有优劣,适用于不同的场景。 首先,`NSURLConnection`是iOS较早版本中的网络请求API,虽然...

    URLConnection实现图片下载

    使用`NSURLConnection`的`connectionWithRequest:delegate:`方法初始化连接,并传入请求对象和委托对象(通常是当前类的实例)。委托对象需要遵循`NSURLConnectionDataDelegate`协议,以便处理接收到的数据。 ```...

    BDMultiDownloader, 在NSURLConnection上,基于简单块的并发多URL数据下载.zip

    BDMultiDownloader, 在NSURLConnection上,基于简单块的并发多URL数据下载 基于 #BDMultiDownloader的简单 objective-c 块基于并发多址数据下载器你的应用... 这个类使用块和NSURLConnection实现了一个简单的方法。##Fe

    iOS开发中使用NSURLConnection类处理网络请求的方法

    1. **同步请求**: 使用`start`方法发送请求,当前线程会阻塞直到服务器响应,不推荐在主线程中使用,因为它可能导致UI冻结。 ```objc NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:...

    NSURLProtocolDemo:使用NSURLConnection和NSURLSession的NSURLProtocol演示

    `NSURLConnection`是早期的网络请求API,它通过代理方法回调来处理网络请求。而`NSURLSession`是iOS 7及更高版本引入的现代网络接口,提供了更多的功能和性能优化。两者都依赖于URL Loading System,而`...

    PublicKeyPinningExample:使用NSURLConnection实现公钥SSL固定的示例

    这是使用NSURLConnection为iOS进行SSL公钥固定的示例实现。 当客户端通过SSL / TLS连接到服务器时,服务器将提供证书。 该证书包含一个公共密钥。 在此示例中,我们提取公钥并将其与本地副本进行比较。 如果服务器...

    iOS-Network-Interceptor:一组允许您使用 NSURLConnection 或 NSURLSession 监视任何请求的类

    可以运行项目,没有UI控件,在ViewController的viewDidLoad方法中我们使用XplatNetworkMonitorClient开始监控,并将self作为NSNotificationCenter观察者添加到kXPLNetworkMonitorNotification键。 当网络被拦截时,...

    NSURLConnention

    下面将详细讲解NSURLConnection的使用步骤以及相关知识点。 首先,我们需要了解如何使用NSURLConnection发送GET和POST请求。GET请求通常用于获取服务器上的静态数据,而POST请求则用于向服务器提交数据。在iOS中,...

Global site tag (gtag.js) - Google Analytics