`
java_cofi
  • 浏览: 48795 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

利用HttpURLConnection对象和Internet交互

阅读更多
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编程.确保程序的稳定性.
分享到:
评论

相关推荐

    HttpURLConnection和简单的Android服务器交互

    在Android中,HttpURLConnection是实现服务器交互的基础工具,理解其工作原理和使用方式对开发至关重要。合理利用它,可以构建高效、安全的网络通信机制,实现丰富的功能,如登录注册、数据同步、文件上传下载等。...

    android+httpurlconnection

    本项目聚焦于如何利用HTTPURLConnection实现从网络上下载图片并显示在Android Activity中。这个过程涉及到网络请求、多线程处理、数据解码以及UI更新等多个关键知识点。 首先,我们来讲解HTTPURLConnection的基本...

    httpurlconnection xml

    本示例中的代码着重于利用HTTPURLConnection处理XML数据,这在移动应用中尤其常见,比如从远程服务器获取配置信息或者同步用户数据。下面将详细介绍这个主题中的关键知识点。 1. **HTTPURLConnection的使用** - **...

    Android使用HttpURLConnection访问网络

    本篇文章将深入探讨如何在Android应用中利用HttpURLConnection访问网络,包括设置请求方法、添加请求头、处理响应以及解决常见问题。 1. HttpURLConnection简介: HttpURLConnection是Java内置的类,它是...

    基于Android的APP前端数据交互.pdf

    人类的吃穿住行,甚至娱乐,消费都离不开手机APP,在国内市场,Android操作系统远多于Ios操作系统,所以我们必须利用好Android平台来开发各类软件,为解决app前端与web服务端的数据交互问题,我们一般采用post和get...

    Android中与网络交互的处理

    在Android应用开发中,与服务器进行交互是必不可少的一部分,它涉及到数据的获取、发送和更新。本主题将深入探讨如何在Android中实现网络交互,主要关注使用HttpClient和HttpResponse这两个关键组件。 首先,...

    Android和servlet交互的用户登录演示例子

    这个简单的例子对于初学者来说是一个很好的起点,通过实际操作,可以更好地理解和掌握Android与服务器之间的数据交互。在深入学习后,可以考虑引入更先进的网络库,以及考虑安全性、用户体验等方面的优化。

    安卓与服务器交互(MySQL)

    Android SDK提供了一些基础库,如`HttpURLConnection`和`HttpClient`,但现代应用更倾向于使用第三方库,如`Retrofit`、`OkHttp`和`Volley`,它们提供了更便捷、高效的API。 2. **JSON数据格式**:在Android与...

    Android 与php服务器交互实例源码.zip

    9. **测试与调试**:使用模拟器或真实设备进行测试,可以利用Charles、Wireshark等工具抓包查看网络请求和响应,便于调试。 通过这个"Android与php服务器交互实例源码",开发者可以学习到实际的交互流程,了解如何...

    安卓Android源码——与asp.net中的一般处理程序ashx进行交互.zip

    这个压缩包"安卓Android源码——与asp.net中的一般处理程序ashx进行交互.zip"提供了示例代码,教你如何利用Android客户端与ASP.NET服务器上的ASHX(Generic Handler)进行通信。ASHX是一种轻量级的HTTP处理程序,常...

    Android高级应用源码-客户端与服务端的json交互的小例子.zip

    在Android开发中,客户端和服务端的数据交互是必不可少的,JSON作为一种轻量级的数据交换格式,被广泛用于Android应用与服务器之间的通信。这个"Android高级应用源码-客户端与服务端的json交互的小例子"提供了很好的...

    安卓Android源码——利用JSON,通过安卓Android客户端访问web服务器,实现一个登录功能.zip

    2. Android网络请求:Android提供多种方式进行网络请求,如HttpURLConnection、HttpClient(已被弃用)和第三方库如OkHttp、Volley等。在这个例子中,可能使用了HttpURLConnection或者第三方库来发起HTTP请求,获取...

    android利用ZXing Jsoup 和豆瓣API做出的图书搜索.zip源码资源下载

    7. **权限管理**:由于涉及到网络访问和相机使用,开发者必须在AndroidManifest.xml中声明相应的权限,如INTERNET权限和CAMERA权限。 8. **错误处理和调试**:在实际应用中,开发者需要处理可能发生的各种异常情况...

    安卓Android源码——利用JSON,通过安卓Android客户端访问web服务器,实现一个登录功能.rar

    在安卓(Android)开发中,实现客户端与web服务器的数据交互是一项基本任务,这通常涉及到网络编程和数据序列化技术。本示例中的“安卓Android源码——利用JSON,通过安卓Android客户端访问web服务器,实现一个登录...

    简单实用的利用c# websservice获取数据

    在IT行业中,Web服务是一种广泛使用的技术,它允许不同应用程序之间通过网络进行通信和数据交换。C# WebService是基于.NET Framework的一种实现,提供了一种简单的方法来创建和消费Web服务。本文将深入探讨如何利用...

    安卓开发-利用JSON,通过Android客户端访问web服务器,实现一个登录功能.zip.zip

    在安卓应用开发中,利用JSON(JavaScript Object Notation)与Web服务器进行数据交互是一个常见的实践。JSON作为一种轻量级的数据交换格式,因其易读、易写、易解析的特性,被广泛应用于移动设备上的网络通信。本...

    安卓登录注册相关-android实现登陆和注册的前后台框架利用http的post和get进行请求请求方式已经封装完善.rar

    这个压缩包文件提供的资源涉及到了如何在Android平台上构建一个完整的登录和注册系统,该系统利用HTTP的POST和GET方法与后台服务器进行数据交互。这里我们将详细探讨这个过程中的关键知识点。 首先,让我们了解HTTP...

    android_http_get_post

    - 建立连接:创建HttpURLConnection对象,设置URL并打开连接。 - 设置请求方法:调用setRequestMethod("GET")。 - 发送请求:调用connect()方法。 - 获取响应:读取输入流,解析服务器返回的数据。 - 关闭连接...

    Android高级应用源码-利用JSON,通过Android客户端访问web服务器,实现一个登录功能.zip

    在Android中,我们通常使用`org.json`库来处理JSON数据,包括解析JSON字符串为对象和将对象转换为JSON字符串。 2. **HTTP通信**:在Android中,我们通常使用`HttpURLConnection`或者第三方库如`OkHttp`来实现HTTP...

    android手机与asp服务器传输数据源码

    在这种情况下,ASP结合了Access 2003数据库和IIS(Internet Information Services)作为Web服务器。Access数据库提供了存储和管理数据的能力,而IIS则负责处理HTTP请求并运行ASP脚本。ASP通过VBScript或JScript编写...

Global site tag (gtag.js) - Google Analytics