小猪的Android入门之路 Day 8 part 2
Android网络编程浅析——Android访问网络资源
——转载请注明出处:coder-pig
本节引言:
在part 1中我们学习了网络交互中用得较多的xml文件的相关概念,以及在Android中常用的
解析XML三种不同形式,分别SAX,DOM,Pull三种不同的解析方式;而在part 2中我们将会
讲解我们的应用如何去获取网络上的资源,分别是图片,HTML代码,XML代码和JSON数据;
好了,废话就这么多,开始本节的课程吧!从这part开始我们就需要使用到tomcat搭建服务器了
就是建立自己的web程序,可以使用eclipse直接创建或者另外下载一个myeclipse创建web程序
还有,使用官网提供的那个封装好的Android IDE是创建不了Web程序的,切记!
写给看本文的初学者:
看到这里证明你已经学习了Android的大半知识了,先恭喜下你!不过学到这里也遇到一个问题!
说了是网络,那么必然会涉及到服务器和客户端的交互,对于初学者来说,更多的问题是服务端
的搭建问题,毕竟很多朋友都没有接触过服务端的,或者说服务器的编程!笔者再这里也纠结了
几天,不知道该如何去阐述;鉴于很多朋友都没学过Jsp和Servlet或其他服务端编程语言,更别提
SSH那些框架了,这里给出一个最低的基础:要掌握获取与解析服务器反馈的数据的能力,
而不用去关心服务端的实现,其实在很多的公司都是有专门的人来负责服务器这块的!当然如果
你对自己要求高的话,也可以自学下简单的jsp和servlet,当然也可以深入的学习下J2EE或者其他
服务端的语言!
由于篇幅有限,可能本文阐述得不够完整,对本文一些内容,笔者可能有些不理解,但是请自己手动敲一遍,
看不懂的敲一遍,敲的过程中去理解,一遍不懂敲两遍,慢慢滴你就会有所收获的了!直接把本文后面
提供的web工程加载到tomcat上就可以了,另外,ip要改哦!在开始菜单输入"cmd",输入指令"ipconfig"
找到IPV4那个IP就是了!
另外提供一些参考资料(有兴趣的可以下载看看):
本文参考书籍:《Android 4.0网络编程》: http://pan.baidu.com/s/1o6siI6I
参考视频:http://pan.baidu.com/s/1jGiN3gE
ps:4.0版本以后,Android的网络访问操作不能在子线程中进行!需要新建一个线程哦!
另外访问网络操作的话,其实更推荐使用Vollery框架,有兴趣的话自己了解下把!
本节学习路线图:
正文:
HTML协议的流程图:
流程图解析:
1)用户在浏览器中输入百度的域名,点击访问后,域名先发送到DNS,解析域名,得到ip后链接到服务器对应的
端口号上(该端口通常是用于监听客户端连接服务器的)!
2)从浏览器到服务区端口使用了最简单的TCP/IP协议,使用Socket来完成
3)从服务端返回的数据有三种形式,HTML,XML或JSON,另外用户上传或下载文件就用到JavaSE的IO技术了
获得网络上的图片
效果图:
代码解析:
获得网络上的网页代码
效果图:
ps:除了支持HTML外,其他的php,.net都可以读取
代码解析:
解析服务器返回的XML数据
效果图:
要先搭建好服务端平台,搭建好后运行tomcat出现下图信息:
访问此链接后出现下面的xml内容说明服务端已经搭建完毕了!
接着编写客户端,实现后的效果图如下:
代码解析:
解析服务器返回的JSON数据
效果图:
要先搭建好服务端平台,搭建好后运行tomcat出现下图信息:
访问此链接后出现下面的xml内容说明服务端已经搭建完毕了!
接着编写客户端,实现后的效果图如下:
代码解析:
参考代码下载:
①获得互联网上的图片:http://pan.baidu.com/s/1eQ1SyA2
②获取互联网上的网页代码:http://pan.baidu.com/s/1sjJgYPB
③获取服务器返回的xml数据:http://pan.baidu.com/s/1mgwW4sC
④获取服务器返回的JSON数据:http://pan.baidu.com/s/1pJyms0j
⑤Web工程(服务端):http://pan.baidu.com/s/1hqGb5eW