小猪的Android入门之路 Day 8 part 2

小猪的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











郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。