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中,HttpURLConnection是实现服务器交互的基础工具,理解其工作原理和使用方式对开发至关重要。合理利用它,可以构建高效、安全的网络通信机制,实现丰富的功能,如登录注册、数据同步、文件上传下载等。...
本项目聚焦于如何利用HTTPURLConnection实现从网络上下载图片并显示在Android Activity中。这个过程涉及到网络请求、多线程处理、数据解码以及UI更新等多个关键知识点。 首先,我们来讲解HTTPURLConnection的基本...
本篇文章将深入探讨如何在Android应用中利用HttpURLConnection访问网络,包括设置请求方法、添加请求头、处理响应以及解决常见问题。 1. HttpURLConnection简介: HttpURLConnection是Java内置的类,它是...
4. **数据解析**:服务器返回的JSON或XML数据需要解析成对象,Android提供了Gson、Jackson和org.json等库,可以方便地将字符串转换为Java对象。 5. **错误处理**:处理网络请求可能出现的异常,如网络不可用、超时...
人类的吃穿住行,甚至娱乐,消费都离不开手机APP,在国内市场,Android操作系统远多于Ios操作系统,所以我们必须利用好Android平台来开发各类软件,为解决app前端与web服务端的数据交互问题,我们一般采用post和get...
7. **POST和GET请求**:在与服务器交互时,Android应用可能会发送POST或GET请求。GET请求用于获取资源,参数附在URL上;POST请求则可以传递大量数据,参数在请求体中。 8. **错误处理和重试机制**:在实现与服务器...
在Android应用开发中,与服务器进行交互是必不可少的一部分,它涉及到数据的获取、发送和更新。本主题将深入探讨如何在Android中实现网络交互,主要关注使用HttpClient和HttpResponse这两个关键组件。 首先,...
在IT行业中,Android和Servlet之间的交互是移动应用开发中常见的技术组合。Android是谷歌推出的开源移动操作系统,广泛用于智能手机和平板电脑,而Servlet是Java Web编程的重要组成部分,用于构建动态Web服务。本...
在Android客户端实现与服务器交互的...以上是实现Android客户端与服务器交互用户登录功能的主要技术点和注意事项。在实际开发中,还需要关注性能优化、用户体验设计、异常处理等多个方面,确保整个流程的顺畅和安全。
综上所述,这个DEMO涵盖了Android应用与Web服务器交互的基本流程和技术点,包括网络请求、数据格式、权限管理、异步处理以及错误处理等,是学习和实践Android网络编程的好例子。通过深入研究和理解这个DEMO,开发者...
这个简单的例子对于初学者来说是一个很好的起点,通过实际操作,可以更好地理解和掌握Android与服务器之间的数据交互。在深入学习后,可以考虑引入更先进的网络库,以及考虑安全性、用户体验等方面的优化。
1. **添加依赖**:在Android项目中,需要添加必要的网络权限(`<uses-permission android:name="android.permission.INTERNET" />`)到AndroidManifest.xml文件,并引入HTTP库(如HttpURLConnection或Apache ...
以上就是关于"android(eclipse)和myeclipse(tomcat服务器)交互"的相关知识点,涵盖从服务器配置到客户端请求的全过程。通过这个过程,开发者可以构建起Android应用与后台服务的桥梁,实现数据的交换和服务调用。
`HttpURLConnection`是Android SDK内置的API,适用于简单的小规模请求,而`Volley`和`OkHttp`则提供了更高效的网络请求管理和缓存机制,适合大型应用。 1. **使用HttpURLConnection**: - 创建URL对象:`URL url =...
在Android开发中,HTTPURLConnection是一个重要的网络通信接口,它允许我们通过HTTP和HTTPS协议与Web服务器进行交互。本示例中的代码着重于利用HTTPURLConnection处理XML数据,这在移动应用中尤其常见,比如从远程...
- 在Android 6.0及以上版本,需要在运行时动态申请`INTERNET`权限,以允许应用访问网络。 6. **安全考虑** - 使用HTTPS协议确保数据传输的安全性,防止中间人攻击。 - 对敏感信息如密码进行加密处理,避免明文...
JSON(JavaScript Object Notation)是一种简洁且直观的数据交换格式,它可以表示数组和对象。在Android中,我们通常使用Gson库或org.json库来解析和序列化JSON数据。例如,Gson可以将Java对象转换为JSON字符串,...
2. **网络请求库**:Android SDK虽然提供了HttpURLConnection类来处理网络请求,但在实际开发中,我们通常会使用第三方网络请求库,如OkHttp、Volley、Retrofit等,它们简化了API调用,提高了性能和易用性。...
在Android开发中,`HttpURLConnection` 是一个常用的网络通信组件,它允许应用程序通过HTTP和HTTPS协议与服务器进行交互。然而,使用`getResponseCode()`方法获取HTTP响应码时,可能会遇到`IOException`错误,这通常...