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的基本...
本示例中的代码着重于利用HTTPURLConnection处理XML数据,这在移动应用中尤其常见,比如从远程服务器获取配置信息或者同步用户数据。下面将详细介绍这个主题中的关键知识点。 1. **HTTPURLConnection的使用** - **...
本篇文章将深入探讨如何在Android应用中利用HttpURLConnection访问网络,包括设置请求方法、添加请求头、处理响应以及解决常见问题。 1. HttpURLConnection简介: HttpURLConnection是Java内置的类,它是...
人类的吃穿住行,甚至娱乐,消费都离不开手机APP,在国内市场,Android操作系统远多于Ios操作系统,所以我们必须利用好Android平台来开发各类软件,为解决app前端与web服务端的数据交互问题,我们一般采用post和get...
在Android应用开发中,与服务器进行交互是必不可少的一部分,它涉及到数据的获取、发送和更新。本主题将深入探讨如何在Android中实现网络交互,主要关注使用HttpClient和HttpResponse这两个关键组件。 首先,...
这个简单的例子对于初学者来说是一个很好的起点,通过实际操作,可以更好地理解和掌握Android与服务器之间的数据交互。在深入学习后,可以考虑引入更先进的网络库,以及考虑安全性、用户体验等方面的优化。
Android SDK提供了一些基础库,如`HttpURLConnection`和`HttpClient`,但现代应用更倾向于使用第三方库,如`Retrofit`、`OkHttp`和`Volley`,它们提供了更便捷、高效的API。 2. **JSON数据格式**:在Android与...
9. **测试与调试**:使用模拟器或真实设备进行测试,可以利用Charles、Wireshark等工具抓包查看网络请求和响应,便于调试。 通过这个"Android与php服务器交互实例源码",开发者可以学习到实际的交互流程,了解如何...
这个压缩包"安卓Android源码——与asp.net中的一般处理程序ashx进行交互.zip"提供了示例代码,教你如何利用Android客户端与ASP.NET服务器上的ASHX(Generic Handler)进行通信。ASHX是一种轻量级的HTTP处理程序,常...
在Android开发中,客户端和服务端的数据交互是必不可少的,JSON作为一种轻量级的数据交换格式,被广泛用于Android应用与服务器之间的通信。这个"Android高级应用源码-客户端与服务端的json交互的小例子"提供了很好的...
2. Android网络请求:Android提供多种方式进行网络请求,如HttpURLConnection、HttpClient(已被弃用)和第三方库如OkHttp、Volley等。在这个例子中,可能使用了HttpURLConnection或者第三方库来发起HTTP请求,获取...
7. **权限管理**:由于涉及到网络访问和相机使用,开发者必须在AndroidManifest.xml中声明相应的权限,如INTERNET权限和CAMERA权限。 8. **错误处理和调试**:在实际应用中,开发者需要处理可能发生的各种异常情况...
在安卓(Android)开发中,实现客户端与web服务器的数据交互是一项基本任务,这通常涉及到网络编程和数据序列化技术。本示例中的“安卓Android源码——利用JSON,通过安卓Android客户端访问web服务器,实现一个登录...
在IT行业中,Web服务是一种广泛使用的技术,它允许不同应用程序之间通过网络进行通信和数据交换。C# WebService是基于.NET Framework的一种实现,提供了一种简单的方法来创建和消费Web服务。本文将深入探讨如何利用...
在安卓应用开发中,利用JSON(JavaScript Object Notation)与Web服务器进行数据交互是一个常见的实践。JSON作为一种轻量级的数据交换格式,因其易读、易写、易解析的特性,被广泛应用于移动设备上的网络通信。本...
这个压缩包文件提供的资源涉及到了如何在Android平台上构建一个完整的登录和注册系统,该系统利用HTTP的POST和GET方法与后台服务器进行数据交互。这里我们将详细探讨这个过程中的关键知识点。 首先,让我们了解HTTP...
- 建立连接:创建HttpURLConnection对象,设置URL并打开连接。 - 设置请求方法:调用setRequestMethod("GET")。 - 发送请求:调用connect()方法。 - 获取响应:读取输入流,解析服务器返回的数据。 - 关闭连接...
在Android中,我们通常使用`org.json`库来处理JSON数据,包括解析JSON字符串为对象和将对象转换为JSON字符串。 2. **HTTP通信**:在Android中,我们通常使用`HttpURLConnection`或者第三方库如`OkHttp`来实现HTTP...
在这种情况下,ASP结合了Access 2003数据库和IIS(Internet Information Services)作为Web服务器。Access数据库提供了存储和管理数据的能力,而IIS则负责处理HTTP请求并运行ASP脚本。ASP通过VBScript或JScript编写...