`
micc010
  • 浏览: 71657 次
  • 性别: Icon_minigender_1
  • 来自: 广西
社区版块
存档分类
最新评论

HttpURLConnection对象使用

阅读更多
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对象模拟POST带JSON字符串的AJAX请求失败

    HttpUrlConnection对象模拟POST带JSON字符串的AJAX请求失败! 我的目的是抓取响应结果字符串"301",但抓取的结果是一堆HTML代码,哪位大神看看哪有毛病?

    Android 简单使用 HttpURLConnection

    在这个例子中,我们创建了一个`URL`对象,然后通过`openConnection()`方法获取到`HttpURLConnection`实例。设置了请求方法为GET,并设定了连接和读取超时时间。如果请求成功,我们可以从`connection.getInputStream...

    Android HttpUrlConnection json使用方法

    在使用HttpUrlConnection发送GET请求时,我们将参数附加到URL上。例如,如果我们要从一个API获取JSON数据,URL可能类似于`http://api.example.com/data?key=value`。然后,我们可以创建一个HttpURLConnection实例,...

    HttpURLConnection使用总结示例源码

    1. 获取HttpURLConnection实例:通过URL对象的openConnection()方法获取。 ```java URL url = new URL("http://example.com"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); ``` 2. ...

    使用HttpURLConnection或HttpClient方式传json值到spring中

    本文将详细介绍如何使用`HttpURLConnection`和`HttpClient`这两种方式来实现这一目标。 首先,让我们从`HttpURLConnection`开始。`HttpURLConnection`是Java内置的HTTP客户端,它简单且易于使用,适用于轻量级的...

    HttpURLConnection文件下载\httpURLConnection文件下载

    在给定的代码片段中,展示了如何使用`HttpURLConnection`进行文件下载。 首先,我们看到代码引入了`java.io`、`java.net`和`java.util`这三个包。`java.io`包含了输入/输出流,用于处理数据的读写;`java.net`包含...

    HttpURLConnection 的使用二

    7. **使用HTTPS**:通过`URL`对象的`openConnection()`方法,如果URL是HTTPS,会自动创建`HttpsURLConnection`,支持安全的网络通信。 8. **断点续传和缓存**:虽然`HttpURLConnection`本身不直接支持断点续传,但...

    使用HttpURLConnection发送短信

    // 获取HttpURLConnection对象 HttpURLConnection connection = (HttpURLConnection) urls.openConnection(); // 建立连接 connection.connect(); // 读取服务器响应 BufferedReader reader = new ...

    使用HttpURLConnection下载图片

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

    本示例使用HttpUrlConnection实现上传文件

    1. **创建连接**:使用`URL`对象构造一个`HttpURLConnection`实例,通常会通过`openConnection()`方法来实现。例如: ```java URL url = new URL("http://yourserver.com/upload"); HttpURLConnection connection...

    HttpUrlConnection使用示例

    这通常通过调用`URL`对象的`openConnection()`方法实现,然后强制转换为`HttpURLConnection`类型: ```java URL url = new URL("http://example.com/api"); HttpURLConnection connection = (HttpURLConnection) ...

    AndroidHttpURLConnection发送GET请求

    调用URL对象的openConnection( )来获取HttpURLConnection对象实例: HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 设置HTTP请求使用的方法:conn.setRequestMethod("GET"); 设置连接超时,...

    HttpURLConnection servlet 多文件参数 断点上传

    在Servlet 3.0及以上版本,可以直接使用`HttpServletRequest`的`getParts()`方法来获取上传的文件Part对象。 对于多文件参数上传,我们需要将每个文件和相关参数包装在一个`MultipartEntityBuilder`(如使用Apache ...

    AsyncTask结合HttpUrlConnection的例子

    你可以先创建`HttpURLConnection`对象,然后设置请求属性,接着执行`connect()`方法建立连接。之后根据请求方法不同,处理请求体数据。最后,通过`getInputStream()`或`getErrorStream()`读取响应。 示例代码可能...

    Httpurlconnection

    通过URL对象的openConnection()方法可以获取到HttpURLConnection实例,例如: ```java URL url = new URL("http://example.com"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); ``` ...

    java HttpURLConnection 使用示例

    在本文中,我们将深入探讨`HttpURLConnection`的使用,包括GET和POST请求的实现,以及如何处理可能出现的乱码问题。 一、`HttpURLConnection`概述 `HttpURLConnection`是`URLConnection`的子类,专门用于处理HTTP...

    HttpURLConnection用法详解

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

    【Java】java.net.HttpURLConnection的使用.doc

    要从指定的URL获取网页内容,首先需要创建一个`URL`对象,然后调用`openConnection()`方法得到`HttpURLConnection`实例。为了模拟浏览器(例如IE)的行为,可以设置`User-Agent`请求头。连接建立后,通过`...

    HttpURLConnection获取json数据解析

    本篇将详细讲解如何使用HttpURLConnection获取JSON数据并进行解析。首先,我们需要理解HttpURLConnection的基本用法,然后了解JSON数据的解析方法,以及如何在Android主线程和子线程之间通过Handler进行数据传递。 ...

    HttpUrlConnection实例

    1. **建立连接**:通过URL对象创建`HttpURLConnection`实例。例如: ```java URL url = new URL("http://example.com/api/data"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); ``` 2...

Global site tag (gtag.js) - Google Analytics