【安卓学习之代码学习】 我的app通信过程(笔记)
2017-08-12 10:06
501 查看
一目录结构
二数据格式
三应用层调用
四待更新
经过会忘记通信的整个过程机制,所以将这个过程的代码记录下,方便查看,理解
● 接收数据分享
○ 服务端返回的数据为JSON格式,如下:
○ 格式说明:
返回状态:statusCode //200请求成功 300请求出错 400会话过期
提示信息:message // statusCode不等于200时,才有值
返回值:value // 任意值,标准【JSON】格式,用阿里巴巴的fastjson解析
○ 返回的数据封装成对应的类:
●
●
● 服务端返回的数据为JSON格式,如下:
● 格式说明:
返回状态:statusCode //200请求成功 300请求出错 400会话过期
提示信息:message // statusCode不等于200时,才有值
返回值:value // 任意值,标准【JSON】格式,用阿里巴巴的fastjson解析
● 另外将返回的数据封装成对应的类:
http://blog.csdn.net/ljb568838953/article/details/77109493
二数据格式
三应用层调用
四待更新
经过会忘记通信的整个过程机制,所以将这个过程的代码记录下,方便查看,理解
█ 一、目录结构
后面再添加█ 二、数据格式
● 通信使用第三方库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
相关文章推荐
- JVM学习笔记(二)------Java代码编译和执行的整个过程
- JVM学习笔记(二)------Java代码编译和执行的整个过程
- PHP 开发 APP 接口 学习笔记与总结 - JSON 结合 XML 方式封装通信接口
- JVM学习笔记(二)------Java代码编译和执行的整个过程
- JVM学习笔记(二)------Java代码编译和执行的整个过程
- JVM学习笔记(二)------Java代码编译和执行的整个过程
- APM代码学习笔记3:执行过程
- JVM学习笔记(二)------Java代码编译和执行的整个过程
- 黑马程序员_UDP和TCP简单的通信代码和注释学习笔记
- JVM学习笔记(二)------Java代码编译和执行的整个过程
- JVM学习笔记(二)------Java代码编译和执行的整个过程
- 安卓智慧上海学习笔记系列——GuideActivity新手引导页代码
- PHP 开发 APP 接口 学习笔记与总结 - XML 方式封装通信接口
- JVM学习笔记(二)------Java代码编译和执行的整个过程
- APM代码学习笔记2:编译过程
- 一个实例学习Kotlin 开发 Android App 的全过程(内有代码)
- 【Java学习笔记之十三】初探Java面向对象的过程及代码实现
- 安卓学习笔记之Activity的跳转和Activity间的通信
- JVM学习笔记(二)------Java代码编译和执行的整个过程