最近进入了安卓的坑来吐槽一下,一直作为iOS开发攻城狮,稍微有点不乐意看安卓的代码,很麻烦界面还丑,没有歧视,随便吐槽一下。但前段时间公司项目比较紧所以多多少少跟来跟android来了第二亲密接触,搞得我头大不过也增加一些知识储备,现在android还是半吊子,我还是忠实的苹果粉,哈哈~~
整体来记录下有啥收获最主要就是网络框架 JSON解析。被这个网络框架烦了一整天,现在基本上安卓开发个人感觉都是okhttp的,所以也到处找找框架啥的,发现个比较好的,附上链接
=========》android post get 请求《=================
里面挺详细的可是我复制粘贴还是遇见坑啦不得不吐槽一下,安卓这个类我有点傻傻分不清楚
就这个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开发攻城狮,啧啧啧