Android端访问WebService获取数据
2015-12-16 15:58
453 查看
首先呢,来说什么是WebService~
Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。
Webservice应用的两种类型:
1.可重复使用的应用程序组件
2.连接现有的软件 ,通过为不同的应用程序提供一种连接其数据的途径,实现在不同的应用程序与平台之间交换数据(今天我们示例的方向)
好了,现在就跟大家示例,如何利用java语言,获取与WebService的连接,并从其中获得数据~
一.首先看一下一个简单WebService访问界面
二.下面的便是具体的访问并获取数据的过程
// 创建文件,用于保存从WebService获取的数据
String FileName = "xiaoxianbushixian.xml";
String filePath = Environment
.getExternalStoragePublicDirectory(
Environment.DIRECTORY_MOVIES).getAbsolutePath();
File file = new File(filePath, FileName);
file.createNewFile();
// 文件输出流
FileOutputStream fos = new FileOutputStream(file);
// 访问网址与Webservice建立连接
String address = "网址";
URL url = new URL(address);
HttpURLConnection http = (HttpURLConnection) url
.openConnection();
http.setDoOutput(true);
http.setDoInput(true);
http.setRequestMethod("POST");
http.setUseCaches(false);
http.setRequestProperty("Content-Type", "text/xml");
http.connect();
// 输出流发送请求信息
DataOutputStream out = new DataOutputStream(
http.getOutputStream());
String content = "请求数据";
out.writeBytes(content);
out.flush();
out.close();
// 输出流,把获取到的数据写出到文件里
BufferedInputStream input = new BufferedInputStream(
http.getInputStream());
byte bytes[] = new byte[1024];
int length;
while ((length = input.read(bytes)) != -1) {
fos.write(bytes, 0, length);
}
out.flush();
out.close();
http.disconnect();
网址呢(address)
发送的请求(content)
三.最后容易错误的点
1.联网操作是耗时操作,不可以写在主线程里
2.连接网络,写入文件等,记得加上相应的权限
啦啦,大概暂时就这么多的要点吧~
最后呢,要跟大家分享的一句话是:时间花费在哪里,收获就在哪里;信念坚持在哪里,魅力就在哪里。加油加油!!!
小娴不是仙出版社独家发言
Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。
Webservice应用的两种类型:
1.可重复使用的应用程序组件
2.连接现有的软件 ,通过为不同的应用程序提供一种连接其数据的途径,实现在不同的应用程序与平台之间交换数据(今天我们示例的方向)
好了,现在就跟大家示例,如何利用java语言,获取与WebService的连接,并从其中获得数据~
一.首先看一下一个简单WebService访问界面
二.下面的便是具体的访问并获取数据的过程
// 创建文件,用于保存从WebService获取的数据
String FileName = "xiaoxianbushixian.xml";
String filePath = Environment
.getExternalStoragePublicDirectory(
Environment.DIRECTORY_MOVIES).getAbsolutePath();
File file = new File(filePath, FileName);
file.createNewFile();
// 文件输出流
FileOutputStream fos = new FileOutputStream(file);
// 访问网址与Webservice建立连接
String address = "网址";
URL url = new URL(address);
HttpURLConnection http = (HttpURLConnection) url
.openConnection();
http.setDoOutput(true);
http.setDoInput(true);
http.setRequestMethod("POST");
http.setUseCaches(false);
http.setRequestProperty("Content-Type", "text/xml");
http.connect();
// 输出流发送请求信息
DataOutputStream out = new DataOutputStream(
http.getOutputStream());
String content = "请求数据";
out.writeBytes(content);
out.flush();
out.close();
// 输出流,把获取到的数据写出到文件里
BufferedInputStream input = new BufferedInputStream(
http.getInputStream());
byte bytes[] = new byte[1024];
int length;
while ((length = input.read(bytes)) != -1) {
fos.write(bytes, 0, length);
}
out.flush();
out.close();
http.disconnect();
网址呢(address)
发送的请求(content)
三.最后容易错误的点
1.联网操作是耗时操作,不可以写在主线程里
2.连接网络,写入文件等,记得加上相应的权限
啦啦,大概暂时就这么多的要点吧~
最后呢,要跟大家分享的一句话是:时间花费在哪里,收获就在哪里;信念坚持在哪里,魅力就在哪里。加油加油!!!
小娴不是仙出版社独家发言
相关文章推荐
- 打包Android编译出错make: *** No rule to make target 解决办法
- Android实战 - 音心播放器(MusicActivity - 歌词实现)
- AccessibilityService简介
- android 外部启动activity,自定义action,action常量大全
- Android 缩略图
- android创建快捷方式来打开应用中特定的Activity
- Android编程中activity启动时出现白屏、黑屏问题的解决方法
- android 电源管理
- Android入门之文件系统/File操作
- android 如何正确使用 泛型 和 多参数 “偷懒”
- Android初识-Intent的用法
- Android版使用移动广告平台集成Google Mobile Ads SDK教程
- Android编程之Activity中onDestroy()调用分析
- Android开源控件
- Android 获取系统图库和相机照片 裁剪并显示
- Android操作短信
- Android端实现Cookie机制
- Android Animation动画(很详细)
- Android 6.0 运行时请求权限
- Android不使用自定义布局情况下实现自定义通知栏图标的方法