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服务器的登录功能是一项基本任务,它涉及网络通信、数据解析以及用户界面的设计。下面将详细讲解这个过程的关键知识点。 首先,我们需要理解Android客户端与Web服务器...
在探讨Android客户端如何访问Web Service时,首先需要了解Android平台的基础知识以及Web Service的相关技术细节。以下知识点是根据文档提供的标题、描述、标签以及部分内容,按照要求详细说明Android客户端访问Web ...
PhoneGap提供了JavaScript API,这些API封装了Android的原生功能,如访问设备硬件、存储数据、处理通知等。开发者只需编写HTML、CSS和JavaScript代码,PhoneGap会负责将这些代码转化为原生应用。 在PhoneGap项目中...
在Java和Android开发中,访问WebServices接口是常见的需求,用于获取服务器端的数据或者实现远程调用功能。本实例将详细介绍如何在Java(特别是针对Android环境)中实现对WebServices的调用。 首先,我们要理解Web...
在Android与Servlet之间进行数据交换时,JSON(JavaScript Object Notation)是一种常用的数据格式,因为其轻量级、易于阅读和解析。Android可以使用Gson或Jackson库将Java对象转换为JSON,反之亦然。Servlet端则...
在Android开发中,与Web服务交互是常见的任务,其中一种主要的数据交换格式就是JSON(JavaScript Object Notation)。JSON因其轻量级、易于阅读和编写的特点,被广泛用于服务器向客户端发送结构化数据。本篇文章将...
综上所述,"android访问tomcat服务器"这个案例涵盖了Android客户端的网络请求、服务器端的Servlet编程、数据库操作、数据展示等多个环节,是Android与Web服务交互的经典实践。开发者需要理解并掌握这些技术点,才能...
在Android开发中,实现一个利用JSON与Web服务器交互的登录功能是高级应用的重要部分。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它允许Android客户端与服务器进行高效、简洁的数据通信。本...
3. **JSON**:在Android与Web Service的交互中,JSON(JavaScript Object Notation)是常用的序列化格式,用于数据交换。它结构清晰,易于解析和生成。Android提供了Gson库,可以将Java对象转换为JSON字符串,反之...
在Android开发中,HTTPClient是常用的网络通信库之一,用于与服务器进行交互,获取或发送数据。本示例主要讲解如何使用HTTPClient访问服务器并获取JSON格式的数据。JSON(JavaScript Object Notation)是一种轻量级...
在Android应用开发中,服务器端Web编程是至关重要的部分,因为它允许应用程序与远程服务器进行交互,获取或存储数据。老罗的Android开发视频教程聚焦于这一主题,旨在帮助开发者掌握如何构建能与Web服务有效通信的...
"QQAndroid与web"的主题聚焦于Android版QQ应用程序如何与基于Tomcat的Web服务器后台进行通信,这通常涉及到网络编程、数据传输、服务接口设计等多个方面。下面我们将深入探讨这个主题的相关知识点。 首先,Android...
### Android客户端访问服务器的一种数据交互方法 随着移动互联网技术的发展,特别是3G网络的普及,移动终端已经成为连接互联网的重要工具之一。为了满足用户随时随地获取信息和服务的需求,Android平台以其开放性和...
在Android开发中,输入/输出(I/O)操作是非常重要的一个环节,它涉及到设备与外部世界的数据交换,包括通过网络、存储设备等多种途径进行数据的读取与写入。深入理解Android的I/O概念对于开发者来说至关重要,这有...
在IT行业中,加密和解密技术是保护数据安全的关键手段,尤其在分布式系统如Java、Android和Web应用中。本文将深入探讨RSA和AES这两种常用的加密算法及其在三端通用的实现。 首先,RSA(Rivest-Shamir-Adleman)是一...
Android中常用的JSON解析库有Gson和Jackson。Gson可以直接将JSON字符串转换为Java对象,而Jackson则提供了更灵活的配置和强大的功能。根据项目需求选择合适的库。 5. **示例源码解析** 源码链接(由于无法在此处...
之后,通过编写Java代码建立与服务器数据库的连接,执行SQL语句完成数据操作。 文章通过实际案例比较了这两种访问方法的优劣,为开发者在实际应用中选择合适的访问方式提供了参考。例如,基于Web Service的方法可能...
2. **JSON格式**:在Android和服务器间交换数据时,JSON是最常用的数据交换格式。理解JSON结构和如何在Java或Android中解析JSON对象(如Gson或Jackson库)是非常关键的。 3. **Spring框架**:Spring为Java开发者...
总的来说,这个项目涉及了移动应用开发的关键技术,包括跨平台的Web服务交互、服务器端C# Web API的开发以及iOS和Android客户端如何利用这些服务来获取和操作数据。了解并掌握这些技术对于现代移动应用开发至关重要...