【安卓学习之代码学习】 我的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

原创粉丝点击