转载:
http://blog.csdn.net/getclass/archive/2010/03/03/5343884.aspx
===============================================================================
1.从Internet获取网页
发 送请求,将网页以流的形式读回来.
1)创建一个URL对象:URL url = new URL("http://www.sohu.com");
2)利用HttpURLConnection对象从网络中获取网页数据:HttpURLConnection conn = (HttpURLConnection) url.openConnection();
3) 设置连接超时:conn.setConnectTimeout(6* 1000);
4)对响应码进行判断:if (conn.getResponseCode() != 200) throw new RuntimeException("请求url失败");
5) 得到网络返回的输入流:InputStream is = conn.getInputStream();
6)String result = readData(is, "GBK");
conn.disconnect();
总结:
--我们必须要记得设置连接超时,如果网络不好,Android系统在超过默认时间会收 回资源中断操作.
--返回的响应码200,是成功.
--利用ByteArrayOutputStream类,将得到的输入流写入内存.
-- 在Android中对文件流的操作和JAVA SE上面是一样的.
2.从Internet获取文件
利用HttpURLConnection对象, 我们可以从网络中获取文件数据.
1)创建URL对象,并将文件路径传入:URL url = new URL("http://photocdn.sohu.com/20100125/Img269812337.jpg");
2)创建 HttpURLConnection对象,从网络中获取文件数据:HttpURLConnection conn = (HttpURLConnection) url.openConnection();
3)设置连接超 时:conn.setConnectTimeout(6* 1000);
4)对响应码进行判断:if (conn.getResponseCode() != 200) throw new RuntimeException("请求url失败");
5) 得到网络返回的输入流:InputStream is = conn.getInputStream();
6)将得到的文件流写 出:outStream.write(buffer, 0, len);
总结:
--在对大文件的操作时,要将文件写到SDCard上面,不要直接写到手机内存上.
--操作大文件是,要 一遍从网络上读,一遍要往SDCard上面写,减少手机内存的使用.这点很重要,面试经常会被问到.
--对文件流操作完,要记得及时关闭.
3.向Internet发送请求参数
1) 将地址和参数存到byte数组中:byte[] data = params.toString().getBytes();
2)创建 URL对象:URL realUrl = new URL(requestUrl);
3)通过HttpURLConnection对象,向网络地 址发送请求:HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection();
4)设置容许输出:conn.setDoOutput(true);
5)设置不使用 缓存:conn.setUseCaches(false);
6)设置使用POST的方式发 送:conn.setRequestMethod("POST");
7)设置维持长连 接:conn.setRequestProperty("Connection", "Keep-Alive");
8)设置文件字符 集:conn.setRequestProperty("Charset", "UTF-8");
9)设置文件长 度:conn.setRequestProperty("Content-Length", String.valueOf(data.length));
10) 设置文件类型:conn.setRequestProperty("Content-Type","application/x-www-form- urlencoded");
11)以流的方式输出.
总结:
-- 发送POST请求必须设置允许输出
--不要使用缓存,容易出现问题.
--在开始用HttpURLConnection对象的 setRequestProperty()设置,就是生成HTML文件头.
4.向Internet发送xml数据
XML格式是通信的标准语言,Android系统也可以通过发送XML文件 传输数据.
1)将生成的XML文件写入到byte数组中,并设置为UTF-8:byte[] xmlbyte = xml.toString().getBytes("UTF-8");
2)创建URL对象,并指定地址和参数:URL url = new URL("http://localhost:8080/itcast/contanctmanage.do?method=readxml");
3) 获得链接:HttpURLConnection conn = (HttpURLConnection) url.openConnection();
4) 设置连接超时:conn.setConnectTimeout(6* 1000);
5)设置允许输出 conn.setDoOutput(true);
6)设置不使用缓存:conn.setUseCaches(false);
7)设置以 POST方式传输:conn.setRequestMethod("POST");
8)维持长连 接:conn.setRequestProperty("Connection", "Keep-Alive");
9)设置字符 集:conn.setRequestProperty("Charset", "UTF-8");
10)设置文件的总长 度:conn.setRequestProperty("Content-Length", String.valueOf(xmlbyte.length));
11)设置文件类 型:conn.setRequestProperty("Content-Type", "text/xml; charset=UTF-8");
12) 以文件流的方式发送xml数据:outStream.write(xmlbyte);
总结:
--我们使用的是用HTML的方式传输文件,这个方式只能传输一般在5M一下的文件.
--传输大 文件不适合用HTML的方式,传输大文件我们要面向Socket编程.确保程序的稳定性.
分享到:
相关推荐
《传智播客-黎活明-Android视频教程_源代码》是一套全面且深入的Android开发学习资源,由知名教育机构传智播客的讲师黎活明主讲。这套教程旨在帮助初学者和有一定基础的开发者提升Android应用开发技能,通过实际操作...
"传智播客-8天快速掌握Android视频全部源码"是一套针对Android初学者和进阶者的教学资源,旨在帮助学习者通过深入理解源码,迅速提升Android开发能力。传智播客作为知名的教育机构,其课程内容通常涵盖广泛且深入,...
在IT行业中,网络通信是构建Web应用程序的基础,而...在Web应用开发中,理解HTTP协议和如何利用HttpURLConnection进行网络交互是非常基础且重要的技能。通过学习和实践,开发者可以更好地理解和控制Web应用的网络行为。
【传智播客Android全套源码】是一份包含大量Android应用开发源代码的学习资源,源自知名教育机构传智播客的教学课程。这份压缩包旨在帮助开发者深入理解Android应用的内部工作机制,提供了一个全面的实践平台,让...
在“传智播客_8天Android视频教程”中,您将深入学习Android开发的基础知识,这是成为一名合格Android开发者的关键。Android是Google开发的开源操作系统,广泛应用于智能手机和平板电脑,拥有庞大的用户群体和市场...
通过学习和分析这个【传智播客Android视频教程-课程源码】,开发者不仅可以掌握基本的Android视频播放器开发,还能深入理解Android的网络编程、UI设计、多媒体处理等多个重要领域,从而提升自身在Android开发中的...
【传智博客-安卓基础1】是一份专为初学者设计的安卓开发学习资源,包含了丰富的教学材料,帮助用户从零开始掌握安卓应用开发的基本技能。这个资源包中包括了源代码、课件以及学习笔记,是系统学习安卓开发的理想起点...
本教程主要围绕“传智播客”的Android视频教程展开,由知名讲师黎活明主讲。这个资源集合了视频教程的源代码,旨在为学习Android应用开发的学员提供一个便捷的下载和学习平台,便于大家深入理解和实践Android编程。 ...
传智播客的安卓基础课程是针对初学者设计的一套全面的教学资源,旨在帮助学员快速掌握Android开发的基本技能。这个部分通常涵盖以下几个核心知识点: 1. **环境配置**:如何安装并配置Android Studio,包括JDK、...
在本课程"传智播客Java就业班之手机安全卫士"中,主要涵盖了Java编程语言在构建手机安全软件方面的应用。这是一份为期9天的深入学习计划,旨在帮助学员掌握开发手机安全卫士所需的技能,从而在IT行业中找到与Java...
【传智播客 Android 面试题精编第四版】是专门为Android开发者设计的一份面试指南,涵盖了Android开发中的核心知识点和技术要点。这份资料旨在帮助求职者和在职工程师提升技能,以便在面试过程中表现出色。作为...
本教程主要涵盖的是传智播客的一套Android开发视频教程,由知名讲师黎活明主讲,其内容丰富,旨在帮助学习者深入理解和掌握Android应用开发的各项技能。源代码是教学过程中使用的全部代码实例,对于学习和实践...
传智播客_Andorid教程_20天从零到精通Android开发视频_第09天 1、使用httpurlconnection提交参数 2、使用httpclient提交get、post 3、使用开源项目提交参数 4、多线程下载,断点续传 5、Android实现多线程下载, 6、...
在本资源中,“传智播客_Andorid_Android项目手机卫士视频video_手机卫士第9天视频修正”是一个专门针对Android平台的开发教程,由知名教育机构传智播客提供。这个课程可能专注于讲解如何构建一个名为“手机卫士”的...
在本课程"传智播客_Andorid_Android项目手机卫士视频video_day04"中,我们将深入探讨Android开发中的关键技术和实践,专注于构建一个类似手机卫士的应用。这个项目旨在帮助学员提升Android应用开发技能,理解如何...
"传智播客_Andorid_Android基础视频video_第十一天修"这套课程可能是为了帮助初学者或者有一定经验的开发者巩固和提升Android基础知识而设计的。从标题来看,这可能是系列教程的第十一部分,主要集中在“修”这一...