Android的第二次接触

2017-06-20  本文已影响0人  CharlesYOO


最近进入了安卓的坑来吐槽一下,一直作为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开发攻城狮,啧啧啧

上一篇下一篇

猜你喜欢

热点阅读