网络编程

网络编程

 
 
 
一,NSURLConnection( Web请求和响应
 
 NSURLConnection完成的三个主要任务:获取数据(通常是JSON、XML等)、文件上传、文件下载。
 
二, NSURLSession
 
在NSURLSession时代,NSURLConnection完成的三个主要任务由三个任务来完成:NSURLSessionData、NSURLSessionUploadTask、NSURLSessionDownloadTask,这三个类都是NSURLSessionTask这个抽象类的子类,相比直接使用NSURLConnection,NSURLSessionTask支持任务的暂停、取消和恢复,并且默认任务运行在其他非主线程中.
 

会话

NSURLConnection通过全局状态来管理cookies、认证信息等公共资源,这样如果遇到两个连接需要使用不同的资源配置情况时就无法解决了,但是这个问题在NSURLSession中得到了解决。NSURLSession同时对应着多个连接,会话通过工厂方法来创建,同一个会话中使用相同的状态信息。NSURLSession支持进程三种会话:

  1. defaultSessionConfiguration:进程内会话(默认会话),用硬盘来缓存数据。 
  2. ephemeralSessionConfiguration:临时的进程内会话(内存),不会将cookie、缓存储存到本地,只会放到内存中,当应用程序退出后数据也会消失。 
  3. backgroundSessionConfiguration:后台会话,相比默认会话,该会话会在后台开启一个线程进行网络数据处理。
 
三, UIWebView

UIWebView与页面交互

1.首先在request方法中使用loadHTMLString:加载了html内容,当然你也可以将html放到bundle或沙盒中读取并且加载。

2.然后在webViewDidFinishLoad:代理方法中通过stringByEvaluatingJavaScriptFromString: 方法可以操作页面中的元素

 

 2,浏览器实现
UIWebView不仅能加载网络资源还可以加载本地资源,目前支持的常用的文档格式如:html、pdf、docx、txt等
其实UIWebView整个使用相当简单:创建URL->创建请求->加载请求,无论是加载本地文件还是Web内容都是这三个步骤。UIWebView内容加载事件同样是通过代理通知外界,常用的代理方法如开始加载、加载完成、加载出错等,这些方法通常可以帮助开发者更好的控制请求加载过程。
 
 
 
 
四,网络状态
苹果自带Reachability 存在一些问题,常用AFNetworking第三方框架
 
 
 
参考摘要:
http://www.cnblogs.com/kenshincui/p/4042190.html#UIWebView
http://blog.csdn.net/volcan1987/article/details/8998563
http://blog.devtang.com/blog/2012/03/24/talk-about-uiwebview-and-phonegap/
https://github.com/marcuswestin/WebViewJavascriptBridge/tree/master/Example%20Apps/ExampleApp-OSX

你可能感兴趣的:(网络编程)