最近進入了安卓的坑來吐槽一下,一直作為iOS開發(fā)攻城獅,稍微有點不樂意看安卓的代碼,很麻煩界面還丑,沒有歧視,隨便吐槽一下。但前段時間公司項目比較緊所以多多少少跟來跟android來了第二親密接觸,搞得我頭大不過也增加一些知識儲備,現(xiàn)在android還是半吊子,我還是忠實的蘋果粉,哈哈~~
整體來記錄下有啥收獲最主要就是網絡框架 JSON解析。被這個網絡框架煩了一整天,現(xiàn)在基本上安卓開發(fā)個人感覺都是okhttp的,所以也到處找找框架啥的,發(fā)現(xiàn)個比較好的,附上鏈接
=========》android post get 請求《=================
里面挺詳細的可是我復制粘貼還是遇見坑啦不得不吐槽一下,安卓這個類我有點傻傻分不清楚

就這個Handler 我都試了下三種吧,可能智商捉急,類太多,沒怎么摸過安卓
最重要還是這個網絡請求,公司開發(fā)過程中基本上都用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解析,總體來說熟悉后還是比較方便的,慢慢進入安卓大軍中,做一名安卓開發(fā)中最好的iOS開發(fā)攻城獅,嘖嘖嘖