Android快速開發(fā)架構(gòu)PlanA(四),網(wǎng)絡(luò)請求篇,劃重點(diǎn)(必考)

Android快速開發(fā)架構(gòu)PlanA,一周一個(gè)APP,持續(xù)維護(hù)中!
Android快速開發(fā)架構(gòu)PlanA(一),船新版本的BaseActivity
Android快速開發(fā)架構(gòu)PlanA(二),簡單粗暴的路由管理PRouter
Android快速開發(fā)架構(gòu)PlanA(三),你一定會用上的工具類
Android快速開發(fā)架構(gòu)PlanA(四),網(wǎng)絡(luò)請求篇,劃重點(diǎn)(必考)
Android快速開發(fā)架構(gòu)PlanA(五),文件上傳下載了解一下
Android快速開發(fā)架構(gòu)PlanA(六),抱歉,這些自定義控件真的可以讓你為所欲為
Android快速開發(fā)架構(gòu)PlanA(七),隱藏技能:PhotoBrowse圖片瀏覽
Android快速開發(fā)架構(gòu)PlanA(八),手滑搞了個(gè)萬能適配器CommonAdapter

1.怎么說?

??PlanA架構(gòu)集成第四篇,PlanA中網(wǎng)絡(luò)請求的使用,相信很多開發(fā)者在Android的開發(fā)中都有自己的網(wǎng)絡(luò)請求體系,更適合自己,這里的網(wǎng)絡(luò)請求方面也做了高度封裝,針對多種情況,可以選擇使用,使用簡單,方便。
??PlanA中的網(wǎng)絡(luò)請求主要是Retrofit2+Okhttp3+Rxjava2的封裝,不需要了解底層的實(shí)現(xiàn)思路,你只需一行代碼即可實(shí)現(xiàn)高效,快速的網(wǎng)絡(luò)請求。

2.初始化

  • 在Application的onCreate中初始化baseUrl

    //初始化方式一
    RetrofitClient.getInstance().init(new HttpConfig.Builder().setBaseUrl("http://192.168.1.123:8080/").build());
    
    //初始化方式二 commonHeaderMap為公共header 可以為null
    RetrofitClient.getInstance().init(new HttpConfig.Builder().setBaseUrl("http://192.168.1.123:8080/").build(),commonHeaderMap);
    
  • 如果你需要配置其他項(xiàng),則如下:

     //初始化
     HttpConfig.Builder builder = new HttpConfig.Builder();
     builder.setBaseUrl("http://192.168.1.123:8080/");
     builder.setDefaultConnectTimeout(12000);//設(shè)置連接超時(shí)時(shí)間:毫秒
     builder.setDefaultReadTimeout(12000);//設(shè)置讀取超時(shí)時(shí)間:毫秒
     builder.setDefaultWriteTimeout(12000);//設(shè)置寫入超時(shí)時(shí)間:毫秒
     RetrofitClient.getInstance().init(builder.build());
    

3.網(wǎng)絡(luò)請求(以get為例,post亦是如此)

簡單請求

// taskId為當(dāng)前請求任務(wù)Id,后續(xù)取消網(wǎng)絡(luò)請求會用上,不取消則可以不接收
String taskId = RetrofitClient.getInstance()
            .get("api/getUserByName")
            .param("name", "kevin")
            .execute(new ResCallback<ResponseBody>() {
                @Override
                public void onResponse(ResponseBody responseBody) {
                    Log.d("debug","請求成功");
                }
                @Override
                public void onError(Throwable e) {
                    Log.e("error",e.getLocalizedMessage());
                }
            });

// 取消網(wǎng)絡(luò)請求
RetrofitClient.getInstance().cancelRequest(taskId);

完整請求

1)普通參數(shù)

String taskId = RetrofitClient.getInstance()
           .get("api/getUserByName") // post也是一樣的
           .header("cus-xxx","xxx")
           .headers(headerMap)
           .param("key1","value1")
           .params(paramMap)
           .execute(new ResCallback<ResponseBody>() {
               @Override
               public void onResponse(ResponseBody responseBody) {
                   Log.d("debug","請求成功");
               }
               @Override
               public void onError(Throwable e) {
                   Log.e("error",e.getLocalizedMessage());
               }
           });

2)Json參數(shù)

String taskId = RetrofitClient.getInstance()
           .get("api/getUserByName") // post也是一樣的
           .header("cus-xxx","xxx")
           .headers(headerMap)
           .upJson(paramMap) // 如果調(diào)用upJson的話,會自動添加Content-Type:application/json;charset=utf-8
           .execute(new ResCallback<ResponseBody>() {
               @Override
               public void onResponse(ResponseBody responseBody) {
                   Log.d("debug","請求成功");
               }
               @Override
               public void onError(Throwable e) {
                   Log.e("error",e.getLocalizedMessage());
               }
           });

PlanA網(wǎng)絡(luò)請求框架持續(xù)優(yōu)化中,有疑問或者改進(jìn)意見請留言↓↓↓

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

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,715評論 19 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,896評論 18 399
  • 自己備忘,隨便寫 android網(wǎng)絡(luò)框架源碼解析及對比 android常用網(wǎng)絡(luò)框架對比 Volley: 特點(diǎn) 基于...
    幻海流心閱讀 1,705評論 0 4
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個(gè)線程,因...
    小菜c閱讀 7,391評論 0 17
  • 當(dāng)你工作累了,你會用什么樣的方式休息呢? 如果你的答案是,我都是通過看看網(wǎng)頁啊,追追劇啊,打打游戲來休息的。那你可...
    劉在強(qiáng)閱讀 618評論 2 2

友情鏈接更多精彩內(nèi)容