iOS网络请求-NSURLConnection

iOS网络发送网络请求的步骤:
1、实例化URL(网络资源)
2、根据URL建立URLRequest(网络请求)
- 默认为GET请求
- 对于POST请求,需要创建请求的数据体
3、利用URLConnection发送网络请求(建立连接)
4、获得结果

常用类:
NSURL:请求地址

NSURLRequest:一个NSURLRequest对象就代表一个请求,它包含的信息有
一个NSURL对象、请求方法、请求头、请求体、请求超时
… …

NSMutableURLRequest:NSURLRequest的子类

NSURLConnection:负责发送请求,建立客户端和服务器的连接,发送NSURLRequest的数据给服务器,并收集来自服务器的响应数据

NSURLConnection提供了两个静态方法可以直接以同步或异步的方式向服务器发送网络请求:
同步请求:sendSynchronousRequest:returningResponse:error:
异步请求:sendAsynchronousRequest:queue: completionHandler:

NSURLConnection的使用步骤:
使用NSURLConnection发送请求的步骤很简单
1、创建一个NSURL对象,设置请求路径
2、传入NSURL创建一个NSURLRequest对象,设置请求头和请求体
3、使用NSURLConnection发送NSURLRequest

网络传输之二进制数据流:在网络请求过程中,接收数据的过程实际上是通过NSURLConnectionDataDelegate来实现的,常用代理方法包括:

//服务器开始返回数据,准备工作
(void)connection:didReceiveResponse:
//收到服务器返回的数据,本方法会被调用多次
- (void)connection:didReceiveData:
//数据接收完毕,做数据的最后处理
(void)connectionDidFinishLoading:
//网络连接错误
- (void)connection:didFailWithError:

创建GET和POST请求:

//创建GET请求
NSString *urlStr = [@"http://192.168.1.102:8080/Server/login?username=123&pwd=123" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:urlStr];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

//创建POST请求
NSString *urlStr = @"http://192.168.1.102:8080/Server/login";
NSURL *url = [NSURL URLWithString:urlStr];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
request.HTTPMethod = @"POST";
// 请求体
NSString *bodyStr = @"username=123&pwd=123";
request.HTTPBody = [bodyStr dataUsingEncoding:NSUTF8StringEncoding];

使用代理实现关联性较强的业务逻辑时:
1、代理方法较多,比较分散
2、要处理一个请求,需要在很多地方编写代码
3、不利于逻辑实现、代码编写、调试、维护以及扩展
4、尤其当存在多个请求时会变得非常麻烦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值