美文网首页
Android的第二次接触

Android的第二次接触

作者: CharlesYOO | 来源:发表于2017-06-20 15:21 被阅读0次


    最近进入了安卓的坑来吐槽一下,一直作为iOS开发攻城狮,稍微有点不乐意看安卓的代码,很麻烦界面还丑,没有歧视,随便吐槽一下。但前段时间公司项目比较紧所以多多少少跟来跟android来了第二亲密接触,搞得我头大不过也增加一些知识储备,现在android还是半吊子,我还是忠实的苹果粉,哈哈~~

    整体来记录下有啥收获最主要就是网络框架 JSON解析。被这个网络框架烦了一整天,现在基本上安卓开发个人感觉都是okhttp的,所以也到处找找框架啥的,发现个比较好的,附上链接

    =========》android post get 请求《=================

    里面挺详细的可是我复制粘贴还是遇见坑啦不得不吐槽一下,安卓这个类我有点傻傻分不清楚

    我的Handler

    就这个Handler 我都试了下三种吧,可能智商捉急,类太多,没怎么摸过安卓

    最重要还是这个网络请求,公司开发过程中基本上都用post我也不分了贴代码

    private okhttp3.Call requestPostByAsyn(String actionUrl, HashMap paramsMap,finalReqCallBack callBack) {

    //        if (!isNetworkAvailable()) {

    //            Toast.makeText(AppContext.getInstance(), R.string.no_network_connection_toast, Toast.LENGTH_SHORT).show();

    //        }

    try{

    StringBuilder tempParams =newStringBuilder();

    intpos =0;

    for(String key : paramsMap.keySet()) {

    if(pos >0) {

    tempParams.append("&");

    }

    tempParams.append(String.format("%s=%s", key, URLEncoder.encode(paramsMap.get(key),"utf-8")));

    pos++;

    }

    String params = tempParams.toString();

    RequestBody body = RequestBody.create(MEDIA_TYPE_JSON, params);

    String requestUrl = actionUrl;

    finalRequest request = addHeaders().url(requestUrl).post(body).build();

    finalokhttp3.Call call =mOkHttpClient.newCall(request);

    call.enqueue(newCallback() {

    @Override

    public voidonFailure(okhttp3.Call call, IOException e) {

    failedCallBack("访问失败",callBack);

    Log.e(TAG, e.toString());

    }

    @Override

    public voidonResponse(okhttp3.Call call, Response response)throwsIOException {

    if(response.isSuccessful()) {

    String string = response.body().string();

    Log.e(TAG,"response ----->"+ string);

    TypeInfo typeInfo = ReqClassUtils.getCallbackGenericType(callBack.getClass());

    callBack.onReqSuccess(ReqJsonUtils.parseHttpResult(typeInfo, jsonData));

    successCallBack((T) string,callBack);

    }else{

    failedCallBack("服务器错误",callBack);

    }

    }

    });

    returncall;

    }catch(Exception e) {

    Log.e(TAG, e.toString());

    }

    return null;

    }

    这个就是安卓的post异步请求哈哈,粗糙。

    再来就是json解析

    =======》json解析《========

    主要是通过安卓的反射机制根据TypeInfo的相关属性来进行不同类型的json解析的

    TypeInfo typeInfo =ReqClassUtils.getCallbackGenericType(callBack.getClass());

    callBack.onReqSuccess(ReqJsonUtils.parseHttpResult(typeInfo, jsonData));

    我都是抄来的😄记录一下安卓的网络请求以及json解析,总体来说熟悉后还是比较方便的,慢慢进入安卓大军中,做一名安卓开发中最好的iOS开发攻城狮,啧啧啧

    相关文章

      网友评论

          本文标题: Android的第二次接触

          本文链接:https://www.haomeiwen.com/subject/ljaoqxtx.html