以下是代码,凝视也写得比較清楚:

头文件须要实现协议NSURLConnectionDelegate和NSURLConnectionDataDelegate

//
// HttpDemo.h
// MyAddressBook
//
// Created by hherima on 14-6-23.
// Copyright (c) 2014年. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h> @interface HttpDemo : NSObject<NSURLConnectionDelegate, NSURLConnectionDataDelegate>
{
NSMutableData *receivedData;
NSURLConnection *theConncetion;
}
@end

源文件

//
// HttpDemo.m
// MyAddressBook
//
// Created by hherima on 14-6-23.
// Copyright (c) 2014年. All rights reserved.
// #import "HttpDemo.h"
@implementation HttpDemo
/*
NSURLConnection 提供了非常多灵活的方法下载URL内容,也提供了一个简单的接口去创建和放弃连接,同一时候使用非常多的delegate方法去支持连接过程的反馈和控制 举例:
1、先创建一个NSURL
2、再通过NSURL创建NSURLRequest,能够指定缓存规则和超时时间
3、创建NSURLConnection实例,指定NSURLRequest和一个delegate对象
假设创建失败,则会返回nil,假设创建成功则创建一个NSMutalbeData的实例用来存储数据
*/
- (id)init {
self = [super init];
// Override point for customization after application launch.
NSURLRequest* theRequest = [NSURLRequest requestWithURL:
[NSURL URLWithString:@"http://www.baidu.com"]//
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
timeoutInterval:60.0];
//当收到initWithRequest: delegate: 消息时,下载会马上開始,在代理(delegate)
//收到connectionDidFinishLoading:或者connection:didFailWithError:消息之前
//能够通过给连接发送一个cancel:消息来中断下载
theConncetion=[[NSURLConnection alloc]
initWithRequest:theRequest delegate:self];
if(theConncetion)
{
//创建NSMutableData
receivedData = [NSMutableData data];
}
else
{
//创建失败;
} return self;
} //当server提供了足够客户程序创建NSURLResponse对象的信息时。代理对象会收到一个connection:didReceiveResponse:消息。在消息内能够检查NSURLResponse对象和确定数据的预期长途,mime类型。文件名称以及其它server提供的元信息 //【要注意】,一个简单的连接也可能会收到多个connection:didReceiveResponse:消息当server连接重置或者一些罕见的原因(比方多组mime文档)。代理都会收到该消息这时候应该重置进度指示,丢弃之前接收的数据
-(void)connection:(NSURLConnection *)connectiondidReceiveResponse:(NSURLResponse*)response
{
[receivedData setLength:0];
} //当下载開始的时候,每当有数据接收,代理会定期收到connection:didReceiveData:消息代理应当在实现中储存新接收的数据,以下的样例既是如此
-(void) connection:(NSURLConnection*)connection didReceiveData:(NSData *)data
{
[receivedData appendData:data];
} //当代理接收到连接的connection:didFailWithError消息后,对于该连接不会在收到不论什么消息
-(void)connection:(NSURLConnection*)connection didFailWithError:(NSError*)error
{
theConncetion = nil; NSLog(@"Connection failed! Error - %@ %@",[error localizedDescription],[[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]); }
//数据完成下载,最后,假设连接请求成功的下载,代理会接收connectionDidFinishLoading:消息代理不会收到其它的消息了,在消息的实现中。应该释放掉连接
-(void)connectionDidFinishLoading:(NSURLConnection*)connection
{
//do something with the data
NSString *s = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding];
NSLog(@"succeeded %@",s);
theConncetion = nil;
[receivedData setLength:0];
}
@end

简单使用NSURLConnection、NSURLRequest和NSURL的更多相关文章

  1. OC - 12.NSURLRequest与NSURLConnection

    ##NSURLRequest NSURLRequest封装了一次网络请求所需要的数据,主要封装了以下信息: 请求路径(URL) 请求方法(GET或POST) 请求头 请求体 超时参数 NSURLReq ...

  2. iOS开发——网络篇——NSURLSession,下载、上传代理方法,利用NSURLSession断点下载,AFN基本使用,网络检测,NSURLConnection补充

    一.NSURLConnection补充 前面提到的NSURLConnection有些知识点需要补充 NSURLConnectionDataDelegate的代理方法有一下几个 - (void)conn ...

  3. NSURLConnection、NSURLSession

    NSURLConnection   1.准备网络资源地址:URL 注意:由于URL支持26个英文字母,数字和少数的几个特殊字符. 因此对于URL中包含非标准URL的字符,需要进行编码. iOS提供了函 ...

  4. iOS 网络编程:NSURLConnection

    1 简介 1.1 概念 NSURLConnection类似NSURLSession,都是进行网络数据传输的.其中NSURLSession是NSURLConnection的替代版本,目前IOS9.0几乎 ...

  5. iOS网络通信http之NSURLConnection

    iOS网络通信http之NSURLConnection 移动互联网时代,网络通信已是手机终端必不可少的功能.我们的应用中也必不可少的使用了网络通信,增强客户端与服务器交互.这一篇提供了使用NSURLC ...

  6. 教你如何封装异步网络连接NSURLConnection实现带有百分比的下载

    教你如何封装异步网络连接NSURLConnection实现带有百分比的下载 注:本教程需要你对block有着较为深刻的理解,且对如何封装对象有着一些经验. 也许你已经用惯了AFNetworking2. ...

  7. WebView loadRequest请求错误"NSURLConnection finished with error - code -1022"

    执行下面代码 [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www ...

  8. post NSURLConnection请求网络数据

    #import "ViewController.h" @interface ViewController () @end @implementation ViewControlle ...

  9. iOS网络-01-NSURLRequest与NSURLConnection

    NSURLRequest NSURLRequest封装了一次网络请求所需要的数据,主要封装了以下信息: 请求路径(URL) 请求方法(GET或POST) 请求头 请求体 超时参数 NSURLReque ...

随机推荐

  1. 解决MVC Json序列化的循环引用问题/EF Json序列化循引用问题---Newtonsoft.Json

    1..Net开源Json序列化工具Newtonsoft.Json中提供了解决序列化的循环引用问题: 方式1:指定Json序列化配置为 ReferenceLoopHandling.Ignore 方式2: ...

  2. windows7在局域网中无法映射驱动器问题解决

    昨天下班时闲的蛋疼,因电脑比较慢,因此在计算机的[系统配置中]的启动选项下对[启动项目]和[服务]做了误操作,导致在计算机重启之后声卡.显卡.网卡等许多服务禁用,更令人费解的是内网中断了连接,无法访问 ...

  3. ORACLE_DBA管理脚本

    SYS @ prod >col index_name for a10 SYS @ prod >col table_name for a10 SYS @ prod >col start ...

  4. centos 6.X 安装输入法

    1.打开终端 su 输入 密码 yum install "@Chinese Support" 2.接下来是启用中文输入法的操作 系统 ->首选项 ->输入法 3.在弹出 ...

  5. C++简单工厂模式

    核心思想:用一个工厂类根据不同的输入条件new出不同的派生类指针,然后由多态调用不同派生类中virtual函数,得到不同的结果 所有的判断处理在工厂类中完成,通过CreateFactory函数,根据不 ...

  6. 【USACO 2.4.1】两只塔姆沃斯牛

    [题目描述] 两只牛逃跑到了森林里.农夫John开始用他的专家技术追捕这两头牛.你的任务是模拟他们的行为(牛和John). 追击在10x10的平面网格内进行.一个格子可以是: 一个障碍物, 两头牛(它 ...

  7. Linux 查看文件内容的命令

    转载自:新浪博客 (观看档案内容 : cat, tac, more, less, head, tail, nl, 刚刚我们提到的都只是在于显示档案的外观,或者是移动与复制一个档案或目录而已,那么如果我 ...

  8. php中抽象类和接口的特点、区别和选择

    一.特点: 1.抽象类特点 (1) 用 abstract 来修饰一个类,那么这个类就是抽象类:抽象类绝对不能被实例化,即$abc = new 抽象类名();会报错. (2) 用abstract 来修饰 ...

  9. jquery easy ui 学习 (1)Basic Window

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. Scrapy使用以及Xpath的一些坑, 再入剁手

    scrapy爬虫: https:www.scrapy.org 本篇博客依托的项目: https://github.com/viciousstar/BitcointalkSpider/ 一. Scrap ...