【安卓学习之代码学习】 我的app通信过程(笔记)
来源:互联网 发布:烟台源代码软件怎么样 编辑:程序博客网 时间:2024/06/05 21:49
- 一目录结构
- 二数据格式
- 三应用层调用
- 四待更新
经过会忘记通信的整个过程机制,所以将这个过程的代码记录下,方便查看,理解
█ 一、目录结构
- 后面再添加
█ 二、数据格式
● 通信使用第三方库com.squareup.okhttp,数据请求的格式为Map
/* * post * * return code -1(网络异常,服务器无法连接) 0(服务端正常响应) */ public int post(String url,Map<String,Object> params,ResourceCallBack callBack) { RequestBody body = new FormEncodingBuilder().add("requestJson", FastJsonUtil.toJson(params)).build(); Request.Builder builder = new Request.Builder().url(url).post(body) .addHeader("Accept", "application/json") .addHeader("Connection", "keep-alive"); builder.addHeader("Cookie", getSessionId()); Request request = builder.build(); try { Response response = resource.newCall(request).execute(); storeSessionId(response); if(response.isSuccessful() && callBack != null){ callBack.callBack(response.body().string()); } return 0; } catch (IOException e) { return -1; } }
● 接收数据分享
○ 服务端返回的数据为JSON格式,如下:
{ "statusCode":"200", "message":"", "value":{ "paraList":[ { "ID":"1", "Value":"北京" }, { "ID":"2", "Value":"多云" } ] } }
○ 格式说明:
{ "statusCode":"提示信息", "message":"请求失败的具体原因", "value":"返回值" }
返回状态:statusCode //200请求成功 300请求出错 400会话过期
提示信息:message // statusCode不等于200时,才有值
返回值:value // 任意值,标准【JSON】格式,用阿里巴巴的fastjson解析
○ 返回的数据封装成对应的类:
public class CommonResult { private String statusCode; private String message; private String value; ...}
█ 三、应用层调用
想要获取部分数据,先通过服务端提供的api接口来获取数据:
●
DirectionRequest.getTerminalPara(mContext, new DirectionCallBack() { @Override public void callBack(CommonResult result) { if (result == null) { Toast.makeText(this, "网络请求失败", 2000).show(); return false; } String value = result.getValue(); if (TextUtils.isEmpty(value)) { Toast.makeText(this, "网络请求失败", 2000).show(); return false; } getApiDataDeal(value); return true; } });
●
protected boolean getApiDataDeal(String value) { ApiDataResult data = com.alibaba.fastjson.JSON.parseObject(value, ApiDataResult.class); ArrayList<HashMap<String, String>> paraList = data .getSmartswitchParaList(); HYStringUtils.printHashMapList(paraList); Log.e(" parseResult44", "======="); for (int i = 0; i < paraList.size(); i++) { HashMap<String, String> hashMap = paraList.get(i); String paraID = hashMap.get("paraID"); String paraValue = hashMap.get("paraValue"); for (int j = 0; j < 8; j++) { if (paraID.equals(formItemList[j].getParaID())) { ...... break; } } } }
● 服务端返回的数据为JSON格式,如下:
{ "statusCode":"200", "message":"", "value":{ "paraList":[ { "ID":"1", "Value":"北京" }, { "ID":"2", "Value":"多云" } ] } }
● 格式说明:
{ "statusCode":"提示信息", "message":"请求失败的具体原因", "value":"返回值" }
返回状态:statusCode //200请求成功 300请求出错 400会话过期
提示信息:message // statusCode不等于200时,才有值
返回值:value // 任意值,标准【JSON】格式,用阿里巴巴的fastjson解析
● 另外将返回的数据封装成对应的类:
public class CommonResult { private String statusCode; private String message; private String value; ...}
█ 四、待更新
转载请注明出处:【安卓学习之代码学习】 我的app通信过程(笔记)】
http://blog.csdn.net/ljb568838953/article/details/77109493
阅读全文
0 0
- 【安卓学习之代码学习】 我的app通信过程(笔记)
- 安卓学习笔记之Activity的跳转和Activity间的通信
- 安卓入门学习笔记a4之实用短代码
- I,Android;我的安卓开发学习笔记
- 安卓学习之控件学习笔记
- 我的安卓学习之路--java的家长里短
- 我的安卓学习之路--内部类
- 我的安卓学习之路--java集合
- 我的安卓学习之路--split,StringTokenizer
- 安卓代码跟踪方式学习笔记
- 安卓代码跟踪方式学习笔记
- 安卓学习过程
- 安卓学习笔记---Android APP内存优化之图片优化
- 我的安卓开发学习笔记一:安卓系统架构
- 【安卓学习之代码学习】 二维码学习
- 【安卓学习之代码学习】 双卡知识学习
- 安卓APP开发学习笔记(1)
- 安卓学习笔记---自定义app顶部标题栏
- Billboard(线段树)
- Python简单绘图一
- 设计模式之单例模式
- WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping。请添
- 网桥、bond和team网络接口
- 【安卓学习之代码学习】 我的app通信过程(笔记)
- JAVA JDK windows环境搭建
- 【勤哲应用】用勤哲Excel服务器做医院OA系统
- 利用二维数组 输出10行杨辉三角
- 【翻译】Convolutional Experts Network for Facial Landmark Detection
- hdu6103-2017多校6&尺取法|思维-Kirinriki
- document.getElementById
- 洛谷1525 关押罪犯
- centos 安装redis