`
peng_joy
  • 浏览: 109961 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Android常用的访问web的数据操作

 
阅读更多

1、利用HttpURLConnection对象,从网络中获取网页数据.

 

 

URL url = new URL("http://localhost:8080/mytest");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(6* 1000);//设置连接超时
if (conn.getResponseCode() != 200) throw new RuntimeException("请求url失败");
InputStream is = conn.getInputStream();//得到网络返回的输入流
String result = readData(is, "GBK");
conn.disconnect();
System.out.println(result);
//第一个参数为输入流,第二个参数为字符集编码
public static String readData(InputStream inSream, String charsetName) throws Exception{
	ByteArrayOutputStream outStream = new ByteArrayOutputStream();
	byte[] buffer = new byte[1024];
	int len = -1;
	while( (len = inSream.read(buffer)) != -1 ){
		outStream.write(buffer, 0, len);
	}
	byte[] data = outStream.toByteArray();
	outStream.close();
	inSream.close();
	return new String(data, charsetName);
}

 

 2、利用HttpURLConnection对象,从网络中获取文件数据

 

 

URL url = new URL("http://localhost:8080/mytest/Img269812337.jpg");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(6* 1000);
if (conn.getResponseCode() != 200) throw new RuntimeException("请求url失败");
InputStream is = conn.getInputStream();
readAsFile(is, "Img269812337.jpg"); 

public static void readAsFile(InputStream inSream, File file) throws Exception{
	FileOutputStream outStream = new FileOutputStream(file);
	byte[] buffer = new byte[1024];
	int len = -1;
	while( (len = inSream.read(buffer)) != -1 ){
		outStream.write(buffer, 0, len);
	}
 	outStream.close();
	inSream.close();
}

 

3、向Internet发送POST请求参数

 

 

String requestUrl = "http://localhost:8080/mytest/contanctmanage.do";
Map<String, String> requestParams = new HashMap<String, String>();
requestParams.put("age", "12");
requestParams.put("name", "中国");
 StringBuilder params = new StringBuilder();
for(Map.Entry<String, String> entry : requestParams.entrySet()){
	params.append(entry.getKey());
	params.append("=");
	params.append(URLEncoder.encode(entry.getValue(), "UTF-8"));
	params.append("&");
}
if (params.length() > 0) params.deleteCharAt(params.length() - 1);
byte[] data = params.toString().getBytes();
URL realUrl = new URL(requestUrl);
HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection();

conn.setDoOutput(true);//发送POST请求必须设置允许输出
conn.setUseCaches(false);//不使用Cache
conn.setRequestMethod("POST");	        
conn.setRequestProperty("Connection", "Keep-Alive");//维持长连接
conn.setRequestProperty("Charset", "UTF-8");
conn.setRequestProperty("Content-Length", String.valueOf(data.length));
conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
DataOutputStream outStream = new DataOutputStream(conn.getOutputStream());
outStream.write(data);
outStream.flush();
if( conn.getResponseCode() == 200 ){
        String result = readAsString(conn.getInputStream(), "UTF-8");
        outStream.close();
        System.out.println(result);
}

 

4、利用HttpURLConnection对象,我们可以向网络发送xml数据

 

 

StringBuilder xml =  new StringBuilder();
xml.append("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
xml.append("<M1 V=10000>");
xml.append("<U I=1 D=\"N73\">中国</U>");
xml.append("</M1>");
byte[] xmlbyte = xml.toString().getBytes("UTF-8");
URL url = new URL("http://localhost:8080/mytest/contanctmanage.do?method=readxml");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(6* 1000);
conn.setDoOutput(true);//允许输出
conn.setUseCaches(false);//不使用Cache
conn.setRequestMethod("POST");	        
conn.setRequestProperty("Connection", "Keep-Alive");//维持长连接
conn.setRequestProperty("Charset", "UTF-8");
conn.setRequestProperty("Content-Length", String.valueOf(xmlbyte.length));
conn.setRequestProperty("Content-Type", "text/xml; charset=UTF-8");
DataOutputStream outStream = new DataOutputStream(conn.getOutputStream());
outStream.write(xmlbyte);//发送xml数据
outStream.flush();
if (conn.getResponseCode() != 200) throw new RuntimeException("请求url失败");
InputStream is = conn.getInputStream();//获取返回数据
String result = readAsString(is, "UTF-8");
outStream.close();	

 

5、HTTP多线程断点下载应用程序

 

  • 如何才能从文件的指定位置处开始下载文件?(比如从50MB开始)这一点我们可以通过HTTP请求信息头来设置,可以使用HTTP请求信息头的Range属性。 
   例如:只要在请求头中加入以下代码就可以只请求部分数据: Content-Range: bytes 20000-40000/47000 ,
即从第20000字节请求到第40000个字节,(文件长度是47000字节
  • 如何支持断点下载。就是将下载的进度保存到文件中,但在Android中却不能这么做。在Android平台中,我们需要向文件中写出下载的文件数据,我们通过数据库的方式保存下载进

 

 

 

 

分享到:
评论

相关推荐

    通过Android客户端访问web服务器,实现一个登录功能,服务端+数据库+安卓端.zip

    在Android开发中,实现一个通过客户端访问Web服务器的登录功能是一项基本任务,它涉及网络通信、数据解析以及用户界面的设计。下面将详细讲解这个过程的关键知识点。 首先,我们需要理解Android客户端与Web服务器...

    Android客户端访问Web Service的实现.pdf

    在探讨Android客户端如何访问Web Service时,首先需要了解Android平台的基础知识以及Web Service的相关技术细节。以下知识点是根据文档提供的标题、描述、标签以及部分内容,按照要求详细说明Android客户端访问Web ...

    Android与web结合

    PhoneGap提供了JavaScript API,这些API封装了Android的原生功能,如访问设备硬件、存储数据、处理通知等。开发者只需编写HTML、CSS和JavaScript代码,PhoneGap会负责将这些代码转化为原生应用。 在PhoneGap项目中...

    JAVA访问WebServices接口的简单实例,android可用

    在Java和Android开发中,访问WebServices接口是常见的需求,用于获取服务器端的数据或者实现远程调用功能。本实例将详细介绍如何在Java(特别是针对Android环境)中实现对WebServices的调用。 首先,我们要理解Web...

    Android Servlet WEB http

    在Android与Servlet之间进行数据交换时,JSON(JavaScript Object Notation)是一种常用的数据格式,因为其轻量级、易于阅读和解析。Android可以使用Gson或Jackson库将Java对象转换为JSON,反之亦然。Servlet端则...

    Android端解析web端传来的json数据

    在Android开发中,与Web服务交互是常见的任务,其中一种主要的数据交换格式就是JSON(JavaScript Object Notation)。JSON因其轻量级、易于阅读和编写的特点,被广泛用于服务器向客户端发送结构化数据。本篇文章将...

    android访问tomcat服务器

    综上所述,"android访问tomcat服务器"这个案例涵盖了Android客户端的网络请求、服务器端的Servlet编程、数据库操作、数据展示等多个环节,是Android与Web服务交互的经典实践。开发者需要理解并掌握这些技术点,才能...

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

    在Android开发中,实现一个利用JSON与Web服务器交互的登录功能是高级应用的重要部分。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它允许Android客户端与服务器进行高效、简洁的数据通信。本...

    android 资料整理 web service

    3. **JSON**:在Android与Web Service的交互中,JSON(JavaScript Object Notation)是常用的序列化格式,用于数据交换。它结构清晰,易于解析和生成。Android提供了Gson库,可以将Java对象转换为JSON字符串,反之...

    android httpclient 访问服务器 获取json数据

    在Android开发中,HTTPClient是常用的网络通信库之一,用于与服务器进行交互,获取或发送数据。本示例主要讲解如何使用HTTPClient访问服务器并获取JSON格式的数据。JSON(JavaScript Object Notation)是一种轻量级...

    《老罗Android开发视频教程》服务器端Web编程(源码)

    在Android应用开发中,服务器端Web编程是至关重要的部分,因为它允许应用程序与远程服务器进行交互,获取或存储数据。老罗的Android开发视频教程聚焦于这一主题,旨在帮助开发者掌握如何构建能与Web服务有效通信的...

    QQAndroid与web

    "QQAndroid与web"的主题聚焦于Android版QQ应用程序如何与基于Tomcat的Web服务器后台进行通信,这通常涉及到网络编程、数据传输、服务接口设计等多个方面。下面我们将深入探讨这个主题的相关知识点。 首先,Android...

    Android客户端访问服务器的一种数据交互方法

    ### Android客户端访问服务器的一种数据交互方法 随着移动互联网技术的发展,特别是3G网络的普及,移动终端已经成为连接互联网的重要工具之一。为了满足用户随时随地获取信息和服务的需求,Android平台以其开放性和...

    成为Android数据流大师

    在Android开发中,输入/输出(I/O)操作是非常重要的一个环节,它涉及到设备与外部世界的数据交换,包括通过网络、存储设备等多种途径进行数据的读取与写入。深入理解Android的I/O概念对于开发者来说至关重要,这有...

    java、android、web三端通用的RSA和AES工具

    在IT行业中,加密和解密技术是保护数据安全的关键手段,尤其在分布式系统如Java、Android和Web应用中。本文将深入探讨RSA和AES这两种常用的加密算法及其在三端通用的实现。 首先,RSA(Rivest-Shamir-Adleman)是一...

    Android访问WCF服务源码(Android 客户端)

    Android中常用的JSON解析库有Gson和Jackson。Gson可以直接将JSON字符串转换为Java对象,而Jackson则提供了更灵活的配置和强大的功能。根据项目需求选择合适的库。 5. **示例源码解析** 源码链接(由于无法在此处...

    基于SQL Server的Android应用访问方法的实现.pdf

    之后,通过编写Java代码建立与服务器数据库的连接,执行SQL语句完成数据操作。 文章通过实际案例比较了这两种访问方法的优劣,为开发者在实际应用中选择合适的访问方式提供了参考。例如,基于Web Service的方法可能...

    老罗Android开发 7服务器端Web编程-有源码

    2. **JSON格式**:在Android和服务器间交换数据时,JSON是最常用的数据交换格式。理解JSON结构和如何在Java或Android中解析JSON对象(如Gson或Jackson库)是非常关键的。 3. **Spring框架**:Spring为Java开发者...

    WEBservices,ios,android

    总的来说,这个项目涉及了移动应用开发的关键技术,包括跨平台的Web服务交互、服务器端C# Web API的开发以及iOS和Android客户端如何利用这些服务来获取和操作数据。了解并掌握这些技术对于现代移动应用开发至关重要...

Global site tag (gtag.js) - Google Analytics