您的位置:首页 > 移动开发 > IOS开发

读书笔记——IOS之Web开发

2015-03-29 05:31 253 查看

Web开发

读书笔记:http://www.mincoder.com/article/2576.shtml

主要的请求方法

Get请求:数据以明文在URL中,数据量小

Post请求:数据大小没有限制

HEAD请求:请求头信息

程序的实现需要借助几个对象:

NSURLRequest:建立了一个请求,可以指定缓存策略、超时时间。和NSURLRequest对应的还有一个NSMutableURLRequest,如果请求定义为NSMutableURLRequest则可以指定请求方法(GET或POST)等信息。

NSURLConnection:用于发送请求,可以指定请求和代理。当前调用NSURLConnection的start方法后开始发送异步请求。

文件的下载方法

Get和POST都是不行的,正确的做法是这样的:

要分段下载,每次请求下载的范围,服务根据范围响应这部分的数据,对于文件大小信息如何获取呢?采用HEAD请求拿到。

NSURLSession

NSURLConnection的改良对象。



UIWebview 浏览器控件

IOS操作页面:webViewDidFinishLoad:代理方法中通过stringByEvaluatingJavaScriptFromString: 方法可以操作页面中的元素,例如在下面的方法中读取了页面标题、修改了其中的内容。(通过JS)

页面中调用Object-C: 当需要进行一个js操作时让页面进行一个重定向,并且在重定向过程中传入一系列参数。在UIWebView的代理方法中有一个webView: shouldStartLoadWithRequest:navigationType方法,这个方法会在页面加载前执行,这样可以在这里拦截重定向,并且获取定向URL中的参数,根据这些参数约定一个方法去执行。(也就是把重定向过程拦下来,然后获取请求的参数)

网络状态检测

使用AFNetworking框架检测,发送一个URL然后去检测网络状态变化,网络改变后则调用相应的网络状态改变方法。

#pragma mark 网络状态监测-(**void**)checkNetworkStatus{
//创建一个用于测试的url
NSURL *url=[NSURL URLWithString:@"http://www.apple.com"];
AFHTTPRequestOperationManager *operationManager=[[AFHTTPRequestOperationManager alloc]initWithBaseURL:url];
//根据不同的网络状态改变去做相应处理
[operationManager.reachabilityManager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
**switch** (status) {
**case** AFNetworkReachabilityStatusReachableViaWWAN:
[**self** alert:@"2G/3G/4G Connection."];
**break**;
**case** AFNetworkReachabilityStatusReachableViaWiFi:
[**self** alert:@"WiFi Connection."];
**break**;
**case** AFNetworkReachabilityStatusNotReachable:
[**self** alert:@"Network not found."];
**break**;
**default**:
[**self** alert:@"Unknown."];
**break**;
}
}];
//开始监控
[operationManager.reachabilityManager startMonitoring];}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  IOS-网络