Android的第二次接觸


最近進入了安卓的坑來吐槽一下,一直作為iOS開發(fā)攻城獅,稍微有點不樂意看安卓的代碼,很麻煩界面還丑,沒有歧視,隨便吐槽一下。但前段時間公司項目比較緊所以多多少少跟來跟android來了第二親密接觸,搞得我頭大不過也增加一些知識儲備,現(xiàn)在android還是半吊子,我還是忠實的蘋果粉,哈哈~~

整體來記錄下有啥收獲最主要就是網絡框架 JSON解析。被這個網絡框架煩了一整天,現(xiàn)在基本上安卓開發(fā)個人感覺都是okhttp的,所以也到處找找框架啥的,發(fā)現(xiàn)個比較好的,附上鏈接

=========》android post get 請求《=================

里面挺詳細的可是我復制粘貼還是遇見坑啦不得不吐槽一下,安卓這個類我有點傻傻分不清楚


我的Handler

就這個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ā)攻城獅,嘖嘖嘖

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容