`

HttpURLConnection对象和Internet

    博客分类:
  • HTTP
阅读更多

今天的内容是这几天中比较重要的一部分.作为3G的应用程序开发中,和网络的通信自然是必须的.熟练的使用Android和Internet到交到,这在我们今后的工作中是重中之中.我们今天的内容就要学习,从Internet获取数据,怎么向Internet发送请求参数和向Internet发送xml 数据.这些都是和WEB程序通信的基本手段.努力学习吧.同学们,现在都有找到工作的出去干活的了,我不免有些着急.

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服务器交互

    1. **建立连接**:首先,我们需要获取到URL对象,并通过`openConnection()`方法创建一个HttpURLConnection实例。这个实例代表了与服务器的连接。 2. **设置请求方法**:HttpURLConnection支持GET、POST等多种HTTP...

    httpurlconnection xml

    - **创建连接**:首先,我们需要通过`java.net.URL`对象来创建一个`HttpURLConnection`实例,通过`openConnection()`方法。 - **设置请求方法**:默认是GET,若需POST或其他方式,需要调用`setRequestMethod()`...

    android+httpurlconnection

    此外,由于Android 6.0以后的系统对网络权限进行了限制,需要在Manifest.xml中声明 `<uses-permission android:name="android.permission.INTERNET" />` 权限,并在运行时动态申请权限。 总的来说,这个项目涵盖了...

    Httpurlconnection请求网络数据,使用Android Studio.zip

    本教程将深入探讨如何使用`HttpURLConnection`在Android Studio中请求网络数据,包括文本和图片。 首先,我们需要在AndroidManifest.xml文件中添加INTERNET权限,这是所有网络请求的前提: ```xml ...

    java 在Internet上搜索对象

    7. 安全性:在Internet上搜索和传输对象时,安全性至关重要。HTTPS协议提供了加密和身份验证,Java的JSSE(Java Secure Socket Extension)提供了支持。证书管理和SSL/TLS握手是安全网络编程的关键部分。 8. 错误...

    Android使用HttpURLConnection访问网络

    首先,你需要创建一个URL对象,然后通过openConnection()方法获取HttpURLConnection实例。例如: ```java URL url = new URL("http://example.com/api"); HttpURLConnection connection = (HttpURLConnection) url....

    android之通过HttpURLConnection类查看网络图片、源码例子

    当访问网络资源时,通常我们会先创建一个URL对象,然后通过`openConnection()`方法获取`HttpURLConnection`实例。例如: ```java URL url = new URL("http://example.com/image.jpg"); HttpURLConnection ...

    Android课件(URL+HttpURLConnection).zip

    在Android开发中,URL(统一资源定位符)和HttpURLConnection是进行网络通信的重要工具,尤其在获取和发送网络数据时。本课件“Android课件(URL+HttpURLConnection).zip”显然专注于讲解如何在Android应用程序中...

    Android网络技术HttpURLConnection详解

    在上面的代码中,我们首先创建了一个 URL 对象,并将其转换为 HttpURLConnection 对象。然后,我们设置了 HTTP 请求的方法为 GET,并设置了连接超时和读取超时的毫秒数。接着,我们获取了服务器返回的输入流,并使用...

    Android Studio调用RestfulWCF接口

    然后,使用 URL 和 HttpURLConnection 对象来发送 POST 请求,设置请求头和请求体,并将 JSON 对象转换为 byte 数组并写入输出流中。最后,获取响应代码,以确定请求是否成功。 需要注意的是,在 Android 中,网络...

    Android通过URL跟web服务器通信方式(3.0以上通用).pdf

    创建一个HttpURLConnection对象通常包括以下几个步骤: 1. 通过URL对象打开连接:使用URL类创建一个新的URL对象,然后调用openConnection()方法来建立连接。 2. 配置连接属性:可以设置请求方法(GET或POST),超时...

    Java_Advanced_Programming_Internet_Access_code.rar_java programm

    在Java编程领域,Internet接入是不可或缺的一部分,它使得应用程序能够与网络进行交互,实现数据的传输和共享。本资料主要围绕"Java Advanced Programming InternetAccess code"展开,旨在深入解析Java如何进行...

    Internet实务系列丛书 JAVA快速查询手册

    《Internet实务系列丛书 JAVA快速查询手册》是一本专为Java开发者设计的实用参考书籍,旨在帮助读者迅速解决在编程过程中遇到的问题。本书涵盖了Java语言的基础到高级特性,包括语法、类库、框架以及网络编程等多个...

    Android 开发过程网络相关问题

    在Android开发过程中,网络相关的议题至关重要,因为它涉及到应用...无论是选择HttpURLConnection的原生方式,还是利用高性能的OkHttp和Retrofit,以及有效地解析和使用JSON数据,都能显著提升应用的性能和用户体验。

    Java源代码根据URL获取因特网网页源文件.rar

    在Java编程中,从URL获取因特网网页源文件是一项基本任务,这通常涉及到网络编程和HTTP协议。这个RAR文件包含的"说明.txt"可能是详细的操作指南,而"根据URL获取因特网网页源文件"可能是一个Java源代码示例,用于...

    安卓开发-android与asp.net中的一般处理程序ashx进行交互.zip.zip

    2. 创建请求:在Java代码中,你可以创建一个HttpURLConnection对象,设置请求方法(GET或POST),并连接到服务器上的ASHX处理程序URL。例如: ```java URL url = new URL("http://yourserver.com/yourhandler.ashx")...

    android_http_get_post

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

    Android Http简单应用源码.rar

    - 创建URL对象,通过`openConnection()`方法获取HttpURLConnection实例。 - 设置请求方法(GET或POST),通过`setRequestMethod()`。 - 设置连接超时和读取超时,通过`setConnectTimeout()`和`setReadTimeout()`...

    安卓程序访问服务器的列子

    3. 将连接转换为`HttpURLConnection`对象,`((HttpURLConnection) url.openConnection())`。 4. 设置请求方法,如`connection.setRequestMethod("GET")`。 5. 发送请求,`connection.connect()`。 6. 读取响应,`...

Global site tag (gtag.js) - Google Analytics