在学习Android开发的这段时间,做过几个小型项目,对于网络请求方面也遇到了很多的问题和自己的解决方案。
首先Android主要核心代码是由Java编写,所以网络请求方面可以用Java api给我们提供的几种方法。
1.Okhttp3 2.HttpURLConnection 3. HttpClient
第三种方案已经在谷歌更新的 Android 6.0中已经无法使用,众所周知。
现在主流的是用上面两种方式。
http://www.jianshu.com/p/1873287eed87 转载一篇Okhttp3 的使用说明
http://blog.csdn.net/woxueliuyun/article/details/43267365 转载一篇来自清箫关于HttpURLConnection 的使用说明
然而大家都知道在Android请求网络需要在子线程中发起,修改UI线程需要进行异步处理,所以Android有个异步处理机制 handler 它可以把结果返回发送给UI线程。所以还需要自己进行数据的封装,包括请求头,请求内容等等。
所以我们急需的就是网络请求框架。
现在热门的网络请求框架有很多:Nohttp Volley AsyncHttp xUtil
要注意的是,这几个网络框架只能在Android中使用,不能够在Java开发中使用,原因是它们几个不是在socket层做事情。这几个框架都做了不同程度的封装,获得的数据可以直接使用,可以直接更改UI线程也就是主线程的数据信息。
对于我写的小项目中,我使用的是Okhttp3然后自己对它进行封装,但是只是封装了传递参数,请求头之类简单的数据,修改UI线程我还是自己又自己写了异步请求机制,虽然在小程序中显得得心易手,但是我也想过,如果是在一个比较庞大的项目中,自己写网络框架显得就有点复杂。不过总而言之,自己封装一个框架使用OKhttp3要比HttpURLConnection好得多,比较前者也是Google所推荐的。
再说直接使用封装好的网络框架我们直接使用的,就要探讨一下哪一种是比较简单适用的。在此我推荐Nohttp,这是严振杰所创的网络框架。它封装了:文件下载,断电续传,304缓存,302/303传参数,传文件,请求头,多文件上传,大文件上传,Cookie自动管理等多种功能。
http://doc.nohttp.net/162186 在此我直接贴出我使用它的时候所看的说明书
一定要注意:1.要导包
2.要初始化(如果要更改底层,在初始化中更改)
3.同步和异步请求方式大同小异,异步请求要注意是可以使类继承他的监听接口,重写四个方法比较容易的更改主程序的数据。
目前我所使用到的只是Nohttp框架的一部分,它的强大我还没有全部的领悟得到,在此有所记录,望览者取之有用,弃之无。
对于Android开发中添加网络请求方式的浅解
最新推荐文章于 2024-03-31 22:43:55 发布