转载:
http://blog.csdn.net/getclass/archive/2010/03/03/5343884.aspx
===============================================================================
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编程.确保程序的稳定性.
分享到:
相关推荐
NULL 博文链接:https://675990021.iteye.com/blog/2273834
传智播客_Andorid教程_20天从零到精通Android开发视频_第09天 1、使用httpurlconnection提交参数 2、使用httpclient提交get、post 3、使用开源项目提交参数 4、多线程下载,断点续传 5、Android实现多线程下载, 6、...
HttpURLConnection和简单的Android服务器交互
http请求在Android开发中是必不可少的,现在我写了一个关于http get请求文本数据的例子希望能和大家交流学习
实例Demo程序来示范使用HttpURLConnection实现多线程下载。 使用多线程下载文件可以更快完成文件的下载,因为客户端启动多条线程进行下载就意味着服务器也需要为该客户端提供响应的服务。假设服务器同时最多服务100...
android之通过HttpURLConnection类查看网络图片、网络源码的例子android之通过HttpURLConnection类查看网络图片、网络源码的例子
HttpUrlConnection对象模拟POST带JSON字符串的AJAX请求失败! 我的目的是抓取响应结果字符串"301",但抓取的结果是一堆HTML代码,哪位大神看看哪有毛病?
HttpURLConnectionDemo.apk
Http完成客户端服务端交互 ...客户端用Android编译,HttpUrlConnection连接 通过json传输数据 部分电脑需要关闭防火墙 android真机和电脑连在同一网段,cmd——》ipconfig查找网段ip并在源码中修改 内附课程设计报告
HttpURLConnection的get,post和图片加载
主要介绍了JAVA通过HttpURLConnection 上传和下载文件的方法,非常具有实用价值,需要的朋友可以参考下
利用HttpURLConnection进行手机号段归属地数据采集 http://zjava.org.ru/
Java利用HttpURLConnection发送post请求上传文件
HttpURLConnection文件下载\httpURLConnection文件下载
正文:我在使用HttpURLConnection.getResponseCode()的时候直接报错是IOException错误,responseCode = -1。一直想不明白,同一个程序我调用了两次,结果有一个链接一直OK,另一个却一直报这个错误。后来发现两个...
使用HttpURLConnection实现断点续传
一个 定时向网络访问数据 的程序,地震速报--HttpURLConnection与 Service 侦测服务, 详情请参见 http://blog.csdn.net/aduovip/article/details/17054129
调用URL对象的openConnection( )来获取HttpURLConnection对象实例: HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 设置HTTP请求使用的方法:conn.setRequestMethod("GET"); 设置连接超时,...
使用HttpURLConnection或HttpClient方式传json值到spring中