MockService 移动端虚拟数据
来源:互联网 发布:中国医科大学网络教育 编辑:程序博客网 时间:2024/05/16 01:12
一 安卓在开发的过程中,由于项目紧迫,可能接口并有写好,而移动迫切需要数据,此 时就需要在移动端模拟虚拟数据,也就是本文的MockService。
二 通常移动端都会与后台约定好返回的Response数据格式,一般使用Json作为返回的结果,比较规范的数据返回格式如下:
JSON 数据格式一
{
"error": true,
"errorMessage": "信息获取失败",
"errorType": 1,
"result": ""
}
JSON 数据格式二
{
"error": false,
"errorMessage": "",
"errorType": 0,
"result": "{"city":"Beijing","cityid":"10000"}"
}
这里,error是调用api是否成功,errorType是错误类型(如果成功则为0) errorMessag是错误信息(如果成功则为空) result是返回的结果,(如果失败则返回为空)
所有的JSON都返回了error errorType errorMessage result 四个字段 ,我们定义一个Response实体类,作为所以JSON实体的最外层。
public class Response { private boolean error;//是否有错误 private int errorType; //1为Cookie失效 private String errorMessage;//错误信息 private String result;//返回信息 public boolean isError() { return error; } public void setError(boolean error) { this.error = error; } public String getResult() { return result; } public void setResult(String result) { this.result = result; } public int getErrorType() { return errorType; } public void setErrorType(int errorType) { this.errorType = errorType; } public String getErrorMessage() { return errorMessage; } public void setErrorMessage(String errorMessage) { this.errorMessage = errorMessage; }}如果成功返回数据数据存放在result字段中
我使用了反射工程来设计MockService。MockService是一个抽象基类,有一个抽象方法 getJsonData,用于返回 手动生成的Mock数据。
public abstract String getJsonData(boolean flag);
每一个要Mock数据的API接扣 都对应一个继承自MockService的子类,都需要实现各自的getJsonData方法 返回不同的json数据。
public class MockWeatherInfo extends MockService { Response response; @Override public String getJsonData(boolean flag) { if (flag) { WeatherInfo weather = new WeatherInfo(); weather.setCity("Beijing"); weather.setCityid("10000"); response = getSuccessResponse(); response.setResult(JSON.toJSONString(weather)); } else { WeatherInfo weather = new WeatherInfo(); response = getFailResponse(1,"信息获取失败"); response.setResult(""); } Log.i("error", response.isError() + ""); Log.i("response", response.toString()); return JSON.toJSONString(response); }}在具体获取数据的地方 使用反射 找到该类 调用 getJsonData方法 获取 数据
public class MainActivity extends AppCompatActivity { private TextView tvTest; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tvTest = (TextView) findViewById(R.id.tv_test); getData(true, "com.example.jieke.mockservicedemo.mockData.MockWeatherInfo"); } private void getData(boolean flag, String className) { MockService mockService = null; String strResponse = null; try { mockService = (MockService) Class.forName(className).newInstance(); strResponse = mockService.getJsonData(flag); } catch (InstantiationException e) { e.printStackTrace(); strResponse = ""; } catch (IllegalAccessException e) { e.printStackTrace(); strResponse = ""; } catch (ClassNotFoundException e) { e.printStackTrace(); strResponse = ""; } Log.i("strResponse", strResponse); tvTest.setText(strResponse); }}分析以上代码 运用到三点 技术
1 反射 2 FastJosn的toString 3抽象类 具体实现方法
三 源码地址 http://download.csdn.net/detail/qq_33553515/9671701
0 0
- MockService 移动端虚拟数据
- android mockService 模拟后台请求数据
- 关于mockservice
- UGUI自己制作移动端虚拟触摸移动轴
- soapui模拟桩mockservice---发布mockservice
- soapui模拟桩mockservice---发布mockservice
- 移动端数据交互
- 虚拟键盘与fixed带给移动端的痛!
- 虚拟键盘与fixed带给移动端的痛!
- 虚拟键盘与fixed带给移动端的痛!
- 解决移动端虚拟键盘与fixed定位失效问题!
- 移动端虚拟键盘与fixed定位失效问题!
- 虚拟化、大数据、云计算、物联网、移动互联网以及传统互联网之间的关系
- 虚拟化、大数据、云计算、物联网、移动互联网以及传统互联网之间的关系
- 移动端解析json数据
- 移动端开发-数据分析
- 移动端获取数据列表
- 移动端数据收集思考
- NGINX下的目录跳转
- 第十周-回文数
- Redis简单入门四——对List操作
- Oracle+Ogg 归档丢失 重新导数据建立ogg同步步骤
- 匿名对象
- MockService 移动端虚拟数据
- jquery 笔记集合1 选择器 CSS样式 函数 事件 节点
- 10-回文数1
- 第十周(2)输出回文数
- 封装
- 用几何画板演示三角转子发动机原理的方法
- jstl自定义函数
- 第十周(2)判断回文数
- uc/os-II 分析 (3)