Android 手机卫士(5)从Apache Tomcat服务器获取数据并解析
来源:互联网 发布:合战 知乎 编辑:程序博客网 时间:2024/06/08 13:31
我们从服务器端获取“信息”以便于CheckVersionCode,从而服务于版本更新操作!
// 介绍一下流程:// 获取服务器端的版本号(两步:请求/响应[xml | json])// Tips : 访问http://www.oxxx.com/xxx.josn?key=value 返回200 请求成功.// 以流的方式将响应数据[json文件里面的内容]读取出来// 提示更新的json文件应该包含的数据如下:/* * 新版本的版本名称/新版本的描述信息/ 服务端的版本号 /新版本apk的下载地址 */// Test:模仿更新【在服务器端存放一个update.json】/* (1)update.json */// {// versionName:"2.0",// versionDes:"2.0相当的酷炫,快来下载吧",// versionCode:"2",// downloadUrl:"http://www.oxxx.com/xxx.apk"// }/* (2)写好后可以用hiJson工具进行验证是否写的正确 *//* (3)update.json放在apache tomcat服务器上 */// 具体实现:update.json放于C:\ApacheTomcat\Tomcat 9.0\webapps\ROOT下/* (4)访问http://localhost:8080/update.json */// 若是提示下载或者正确显示出json数据,则josn文件置于服务器成功
这里把Apache Tomcat的各种链接置于此,也便于以后查看。
(1)它是什么?
https://baike.baidu.com/item/apache%20tomcat/5039313?fr=aladdin
(2)官网下载地址
http://tomcat.apache.org/download-90.cgi
(3)如何安装配置
https://www.wshunli.com/2016/03/19/Tomcat%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE/
json文件存在必要性:
因为我们要模拟下载,服务器端肯定要维护一个版本信息的json文件。
上面的流程也介绍了该json文件中应该包含的内容。
写好的Json文件放在哪里呢?
Tomcat 9.0\webapps\ROOT下面
怎么验证正确与否?
http://localhost:8080/update.json【这里的localhost可以是你的ip地址,当然这是你tomcat安装好之后才有的操作】
若是提示下载或者正确显示出json数据,则josn文件置于服务器成功。
【进入正题】
服务器端会响应给我们的json的URL地址已知!
下面直接贴上请求服务器端数据的代码:
// (1)封装url地址URL url = new URL("http://192.168.31.101:8080/update.json");// (2)开启一个链接HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();// (3)设置常见的请求参数(请求头)// (3-1)请求超时(没连上)urlConnection.setConnectTimeout(2000);// (3-2)读取超时(连上了,连得时间超过了2s)urlConnection.setReadTimeout(2000);// (3-3)默认请求方式是"GET",否则"POST"(必须要写清楚,大写)// urlConnection.setRequestMethod("POST");// (4)获取请求成功的相应码if (urlConnection.getResponseCode() == 200) { // (5)以流的形式将数据获取下来 InputStream iStream = urlConnection.getInputStream(); // (6)将流转换成字符串(StreamUtil工具类封装),之后才可以解析 String json = StreamUtil.stream2String(iStream); Log.d(tag, json); // (7)json数据的解析 JSONObject jsonObject = new JSONObject(json); mVersionName = jsonObject.getString("versionName"); mVersionDes = jsonObject.getString("versionDes"); mVersionCode = jsonObject.getString("versionCode"); mdownloadUrl = jsonObject.getString("downloadUrl"); Log.d(tag, mVersionName); Log.d(tag, mVersionDes); Log.d(tag, mVersionCode ); Log.d(tag, mdownloadUrl); // (8)比對版本號(若是本地版本號小於服務器版本號,則提示更新) .........
因为访问服务器需要网络,务必添加网络权限哟~
<uses-permission android:name="android.permission.INTERNET" />
解析json数据只能解析string型的值,因此从服务器获取的流得先转换为String数据.
public static String stream2String(InputStream iStream) {// (1)可直接从流转换为string的一种 ByteArrayOutputStream oStream = new ByteArrayOutputStream();// (2)定义一次性读取(buffer)的大小 byte[] buffer = new byte[1024];// (3)temp记录读取的个数// (4)while循环知道读取完毕 int temp = -1; try { while ((temp = iStream.read(buffer)) != -1) { oStream.write(buffer, 0, temp); } // (5)toString() return oStream.toString(); } catch (IOException e) { // TODO Auto-generated catch block Log.d(tag, "iStream.read(buffer) 异常"); e.printStackTrace(); } finally { try { // (6)Close Stream iStream.close(); oStream.close(); } catch (IOException e) { // TODO Auto-generated catch block Log.d(tag, "oStream/iStream.close() 异常"); e.printStackTrace(); } } return null;}
这样就轻松的将服务器端的json数据完美的解析出来了,版本号什么的一目了然~
阅读全文
1 0
- Android 手机卫士(5)从Apache Tomcat服务器获取数据并解析
- 从服务器获取Json数据,并解析
- 从服务器获取数据(json数据,json集合数组数据)并解析
- android客户端从服务器端获取json数据并解析
- android客户端从服务器端获取json数据并解析
- Android网络编程-----从服务器端获取xml数据并解析
- android客户端从服务器端获取json数据并解析
- android客户端从服务器端获取json数据并解析
- android客户端从服务器端获取json数据并解析
- Android 手机卫士(8)下载服务器上的APK
- Android 手机卫士(1)
- 解析excel表获取数据,并从远程服务器下载和上传文件
- Android项目实战--手机卫士08--获取手机联系人
- Android从零单排之手机客户端http获取Web服务器数据实例
- xutils +Gson解析json(从服务器中获取json并解析)
- 从服务器上请求json数据,并解析json数据
- Android连接服务器,从服务器获取数据,以及从服务器下载文件(单,多线程)
- java获取手机端JSON数据 并解析为字符串
- 嵌入式编程常考的无符号数和有符号数的运算问题
- 2015-2016 Northwestern European Regional Contest I.Identifying Map Tiles(超级技巧+脑洞)
- 菜鸟手记(一)
- GCC编译c语言文件
- 462. Minimum Moves to Equal Array Elements II
- Android 手机卫士(5)从Apache Tomcat服务器获取数据并解析
- 每个架构师都应该研究下康威定律
- 数组
- log4J简单的使用步骤
- git笔记4——上传文件到码云
- 数字金字塔(动态规划)
- 腾讯GT_菜鸟初入门
- Arpa’s hard exam and Mehrdad’s naive cheat
- sql语句常用的命令总结