關(guān)于Retrofit+RxJava實現(xiàn)網(wǎng)絡(luò)請求

最近在寫一個Demo木西,然后在想乐埠,我要用什么網(wǎng)絡(luò)請求才能夠在Demo裝逼,然后翻遍簡書禽篱,最后確定了用Retrofit2.0+RxJava來實現(xiàn)網(wǎng)絡(luò)請求畜伐;下面就簡單的寫下這東西。躺率。
首先玛界,最重要的是導(dǎo)包

Paste_Image.png

這里必須注意Retrofit2.0的幾個包的版本必須相同,一定要注意肥照!完成之后脚仔,我們開始初始化Retrofit2.0。在Application里面

public static Retrofit getApiRetrofit() {   
         if (retrofit == null) {        
               retrofit = new Retrofit.Builder() 
                            .addCallAdapterFactory(RxJavaCallAdapterFactory.create())//這里是添加RxJava工廠
                            .addConverterFactory(GsonConverterFactory.create())//這里是添加Gson工廠
                            .baseUrl(getPath()) //請求地址               
                            .build();   
         }    
        return retrofit;
  }

Path我就不貼出來了舆绎;接下來我們就看看請求怎么寫

Paste_Image.png

這里就以Interface的方式來寫請求鲤脏。

/**
  * Created by Chen Ri Ming on 2016/10/25.
  * 登錄接口 
  */
  public interface LoginService {    
          @POST("index/login")//這里請求時POST請求,所有在這里寫的是@POST吕朵,如果是GET請求猎醇,那么就是@GET,括號里面就是你的登錄接口努溃。
          //以O(shè)bservable開始就是RxJava的形式去請求網(wǎng)絡(luò)硫嘶,如果是Call,那就是單純的使用Retrofit了梧税。    
          Observable<LoginBean> login(            
                          @Header("sign")String sign,//@Heander這個表示是請求頭沦疾,("sign")表示請求字段,String sign第队,這也就是參數(shù)了哮塞。           
                          @Header("time")int time,            
                          @Query("username")String username,//@Query是請求參數(shù),("username")是請求時要傳的參數(shù)凳谦,String username是需要上傳的參數(shù)
                          @Query("password")String password    );
  }

好忆畅,就這樣我們的請求接口是完成了,接下來那就是請求了

Paste_Image.png

首先要調(diào)用初始化尸执,這樣才能夠拿到真正的Retrofit家凯。拿到之后缓醋,那么就開始寫請求了。

final LoginService loginService = retrofit.create(LoginService.class);
      loginService.login(MingTuApplication.getSgin(),MingTuApplication.getTime(),currentUsername,currentPassword) 
               .subscribeOn(Schedulers.newThread())//請求在新的線程中執(zhí)行請求 
               .observeOn(Schedulers.io())         //請求完成后在io線程中執(zhí)行   
               .observeOn(AndroidSchedulers.mainThread())//在主線程中執(zhí)行  
               .subscribe(new Subscriber<LoginBean>() {
                      @Override            
                      public void onCompleted() {
                        //走完整個請求之后進入這個方法            
                      }            
                      @Override            
                      public void onError(Throwable e) {
                                //請求錯誤的時候走的方法              
                               Log.d("error_login",e.getMessage());           
                      }            
                      @Override            
                      public void onNext(LoginBean loginBean) { 
                               //請求成功之后走的方法               
                               switch (loginBean.getCode()){                   
                                      case 1000:                        
                                          String uid = loginBean.getData().getUid();                        
                                          String gender = loginBean.getData().getGender(); 
                                          String avater =loginBean.getData().getLogo();                        
                                          String profession =loginBean.getData().getProfession();  
                                          String reg_time = loginBean.getData().getReg_time();   
                                          String username = loginBean.getData().getUsername();   
                                          String token = loginBean.getData().getToken();                       
                                          String nickname = loginBean.getData().getNickname();  
                                          SharedPreferences sharedPreferences = MingTuApplication.applicationContext.getSharedPreferences("userlogincall",MODE_APPEND); 
                                          SharedPreferences.Editor editor = sharedPreferences.edit();
                                          editor.putString("uid",uid);   
                                          editor.putString("gender",gender);   
                                          editor.putString("avater",avater);     
                                          editor.putString("profession",profession);  
                                          editor.putString("reg_time",reg_time);   
                                          editor.putString("username",username);
                                          editor.putString("nickname",nickname); 
                                          editor.putString("token",token); 
                                          editor.apply();
                                          UserInfoCacheSvc.createOrUpdate(uid,username,avater); 
                                          getloginHX(uid); 
                                       break;                    
                                       default:                        
                                         ToastUtils.ToastMessage(LoginActivity.this,"錯誤"+loginBean.getCode());                        
                                       break;                
                                    }            
                                }        
                            });

這里就是完整的請求過程绊诲,看起來是很漂亮的送粱,很完整的。Nice驯镊!

就這樣葫督,整個過程走完了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末板惑,一起剝皮案震驚了整個濱河市橄镜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌冯乘,老刑警劉巖洽胶,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異裆馒,居然都是意外死亡姊氓,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進店門喷好,熙熙樓的掌柜王于貴愁眉苦臉地迎上來翔横,“玉大人,你說我怎么就攤上這事梗搅『萄洌” “怎么了?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵无切,是天一觀的道長荡短。 經(jīng)常有香客問我,道長哆键,這世上最難降的妖魔是什么掘托? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮籍嘹,結(jié)果婚禮上闪盔,老公的妹妹穿的比我還像新娘。我一直安慰自己辱士,他們只是感情好锭沟,可當(dāng)我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著识补,像睡著了一般。 火紅的嫁衣襯著肌膚如雪辫红。 梳的紋絲不亂的頭發(fā)上凭涂,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天祝辣,我揣著相機與錄音,去河邊找鬼切油。 笑死蝙斜,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的澎胡。 我是一名探鬼主播孕荠,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼攻谁!你這毒婦竟也來了稚伍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤戚宦,失蹤者是張志新(化名)和其女友劉穎个曙,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體受楼,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡垦搬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了艳汽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片猴贰。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖河狐,靈堂內(nèi)的尸體忽然破棺而出米绕,到底是詐尸還是另有隱情,我是刑警寧澤甚牲,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布义郑,位于F島的核電站,受9級特大地震影響丈钙,放射性物質(zhì)發(fā)生泄漏非驮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一雏赦、第九天 我趴在偏房一處隱蔽的房頂上張望劫笙。 院中可真熱鬧,春花似錦星岗、人聲如沸填大。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽允华。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間靴寂,已是汗流浹背磷蜀。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留百炬,地道東北人褐隆。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像剖踊,于是被迫代替她去往敵國和親庶弃。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內(nèi)容