Android 手机卫士--构建服务端json、请求网络数据
本文地址:http://www.cnblogs.com/wuyudong/p/5900384.html,转载请注明源地址。
数据的传递
客户端:发送http请求 http://www.oxx.com/index.jsp?key=value
服务器:在接受到请求以后,给客户端发送数据,(json,xml),json数据从数据库中读取出来,读取数据拼接json,语法规则,结构
获取服务器版本号(客户端发请求,服务端给响应,(json,xml))
http://www.oxxx.com/update.json?key=value 返回200 请求成功,流的方式将数据读取下来
json中内容包含:
/* 更新版本的版本名称
* 新版本的描述信息
* 服务器版本号
* 新版本apk下载地址*/
服务器端json数据update.json,文件内容如下:
- {
- "downloadUrl":"http://www.wuyudong.com/XXX.apk",
- "versionCode":"2";
- "versionDes":"2.0版本发布了,赶紧来下载啊"
- "versionName":"2.0"
- }
注意: 保存文本为 "UTF-8 无BOM" 格式
开启Tomcat,将上面的update.json文件放进ROOT文件夹
新建工具类streamToString.java,主要作用:流转换成的字符串。代码如下:
- package com.wuyudong.mobilesafe.Utils;
- import java.io.ByteArrayOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- public class StreamUtil {
- /**
- * 流转换成字符串
- * @param is 流对象
- * @return 流转换成的字符串 返回null代表异常
- */
- public static String streamToString(InputStream is) {
- //1,在读取的过程中,将读取的内容存储值缓存中,然后一次性的转换成字符串返回
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- //2,读流操作,读到没有为止(循环)
- byte[] buffer = new byte[1024];
- //3,记录读取内容的临时变量
- int temp = -1;
- try {
- while((temp = is.read(buffer)) != -1) {
- bos.write(buffer, 0, temp);
- }
- //返回读取数据
- return bos.toString();
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- try {
- is.close();
- bos.close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- return null;
- }
- }
然后在中添加请求网络数据代码(由于请求网络服务是耗时操作,所有新开一个线程完成):
- /**
- * 检测版本号
- */
- private void checkVersion() {
- new Thread() {
- public void run() {
- // 发送请求获取数据,参数则为请求json的链接地址
- // http://169.254.13.99:8080/update.json 测试阶段不是最优
- // 仅限于模拟器访问电脑tomcat
- try {
- // 1,封装url地址
- URL url = new URL("http://10.0.2.2:8080/update.json");
- // 2,开启一个链接
- HttpURLConnection connection = (HttpURLConnection) url.openConnection();
- // 3,设置常见请求参数(请求头)
- // 请求超时
- connection.setConnectTimeout(2000);
- // 读取超时
- connection.setReadTimeout(2000);
- // 默认就是get请求方式
- //connection.setRequestMethod("POST");
- // 4,获取请求成功响应码
- if(connection.getResponseCode() == 200) {
- // 5,以流的形式,将数据获取下来
- InputStream is = connection.getInputStream();
- // 6,将流转换成字符串(工具类封装)
- String json = StreamUtil.streamToString(is);
- // 记得添加权限-->android.permission.INTERNET
- Log.i(tag, json);
- }
- } catch (MalformedURLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- };
- }.start();
- }
运行后可以在logcat中打印下面信息:
09-23 03:36:36.935: I/SplashActivity(14884): {
09-23 03:36:36.935: I/SplashActivity(14884): "downloadUrl": "http://www.wuyudong.com/XXX.apk",
09-23 03:36:36.935: I/SplashActivity(14884): "versionCode": "2",
09-23 03:36:36.935: I/SplashActivity(14884): "versionDes": "2.0版本发布了,赶紧来下载啊",
09-23 03:36:36.935: I/SplashActivity(14884): "versionName": "2.0"
09-23 03:36:36.935: I/SplashActivity(14884): }
说明请求服务器json数据成功
Android 手机卫士--构建服务端json、请求网络数据的更多相关文章
- Query通过Ajax向PHP服务端发送请求并返回JSON数据
Query通过Ajax向PHP服务端发送请求并返回JSON数据 服务端PHP读取MYSQL数据,并转换成JSON数据,传递给前端Javascript,并操作JSON数据.本文将通过实例演示了jQuer ...
- HTTP服务端JSON服务端
HTTP服务端JSON服务端 最后更新日期: 2014-5-18 Author: Kagula 阅读前提: CMake工具的基本使用 内容简介: CPPCMS是个开源Web开发框架,通过它可以很容易 ...
- Android 手机卫士--弹出对话框
在<Android 手机卫士--解析json与消息机制发送不同类型消息>一文中,消息机制发送不同类型的信息还没有完全实现,在出现异常的时候,应该弹出吐司提示异常,代码如下: private ...
- Android 手机卫士--参照文档编写选择器
本文来实现<Android 手机卫士--导航界面1的布局编写>中的图片选择器部分的代码. 本文地址:http://www.cnblogs.com/wuyudong/p/5944356.ht ...
- Android 手机卫士--设置界面&功能列表界面跳转逻辑处理
在<Android 手机卫士--md5加密过程>中已经实现了加密类,这里接着实现手机防盗功能 本文地址:http://www.cnblogs.com/wuyudong/p/5941959. ...
- Android 手机卫士--确认密码对话框编写
本文接着实现“确认密码”功能,也即是用户以前设置过密码,现在只需要输入确认密码 本文地址:http://www.cnblogs.com/wuyudong/p/5940718.html,转载请注明出处. ...
- Android 手机卫士--签名文件说明&包名说明
在<Android 手机卫士--打包生成apk维护到服务器>一文中,实现了新版本的apk到服务器,当打开客户端apk的时候,发现有新版本,提示更新.还实现了利用xutils工具实现了从服务 ...
- XFire构建服务端Service的两种方式(转)
XFire构建服务端service的两种方式,一是用xfire构建,二是和spring集成构建. 一,xifre构建,确保把xfire的jar包导入到工程中或classpath. 1,service的 ...
- XFire构建服务端Service的两种方式
1.原声构建: 2.集成spring构建 http://blog.csdn.net/carefree31441/article/details/4000436XFire构建服务端Service的两种方 ...
随机推荐
- Moon.Orm 5.0其他额外配置的讲解
<appSettings>其中的配置</appSettings> AUTO_COMPLIE_DIRECTORY_PATH:自动编译model所用的文件夹路径,格式如:C:\ab ...
- 前端scss的使用及gulp发布方式
如标题所述,这篇博文是说scss以及gulp发布方式: 如果你没用过scss和gulp或不甚了解,你可以看看这篇博文,叙说的水平有限,各位看官大神见谅: 说scss之前,先来说说sass,sass是一 ...
- 用Eclipse新建一个web项目没有自动生成web.xml
我们首先打开Eclipse,如下: 我们可以看到在"WEB-INF"文件夹下没有web.xml文件. 这是是什么原因呢,我们来看看,我们首先来新建一个web工程,如下: ...
- JavaScript和DOM的产生与发展
首先本篇文章摘自:http://itbilu.com/javascript/js/Vyxodm_1g.html 非常感谢本篇文章的作者,他理清了我映像中混乱的DOM Level级别.让我知道了DOM0 ...
- ASP.NET MVC的过滤器
APS.NET MVC中(以下简称“MVC”)的每一个请求,都会分配给相应的控制器和对应的行为方法去处理,而在这些处理的前前后后如果想再加一些额外的逻辑处理.这时候就用到了过滤器. MVC支持的过滤器 ...
- 解决在IE中获取数据的缓存问题,运行环境为node.js
IE下默认会开启缓存策略,不管是页面还是通过ajax请求的数据都会议一个url,url是uri(统一资源定位符)的实例,url就是资源的标识符. 写一个demo进行验证,测试环境:IE8,node.j ...
- Linux下快速设定ip bond
在计算机网路普及的初期,很多OS系统都使用的为单网卡方式,即一个网卡使用一个IP地址.随着网络要求的不断提高,我们可以对多个网卡进行绑定聚合当一个逻辑网络接口来使用,从而大幅提升服务器的网络吞吐(I/ ...
- iOS阶段学习第28天笔记(UIView的介绍)
iOS学习(UI)知识点整理 一.关于UIVIew 的介绍 1)概念:UIView 是用于装载并展示各类控件的大容器,是iOS中所有UI控件的基类 2)UIView 初始化实例代码 UIView * ...
- UITextView 文本垂直居中
var center=textView.Bounds.Size.Height - textView.ContentSize.Height; center = center < ? : cente ...
- Android Volley框架的使用(1)
在Android开发中,经常要通过HTTP请求访问网络.为了使通过HTTP请求访问网络的过程更加简单,2013年提出了新的HTTP通信框架--Volley.Volley使用起来非常简单,适用于网络访问 ...