Retrofit基本使用

導包

api 'com.squareup.retrofit2:retrofit:2.5.0' //Retrofit2所須要的包
api 'com.squareup.retrofit2:converter-gson:2.5.0' //ConverterFactory的Gson依賴包,也可指定其餘解析方式
api 'com.squareup.retrofit2:adapter-rxjava2:2.5.0' //結合使用的rxjava2的依賴包

rxjava2的依賴包
api 'io.reactivex.rxjava2:rxandroid:2.1.0'
api 'io.reactivex.rxjava2:rxjava:2.2.6'
okHttp的依賴包
api 'com.squareup.okhttp3:okhttp:3.12.0'
Gson的依賴包
api 'com.google.code.gson:gson:2.8.5'
複製代碼

參數註解

  • @GET(): 註解在方法上,表示get請求,括號內爲請求url
  • @POST(): 註解在方法上,表示Post請求,括號內爲請求url
  • @PUT(): Put請求
  • @DELETE(): Delete請求
  • @Query(): get請求時,註解在方法中,註解後括號中是鍵,跟在後面的是值,將會以key=value的方式拼接在url後面
  • @QueryMap:get請求時,若是參數不少,能夠將參數集成到map集合,用此註解在方法中傳遞
  • @Field(): Post請求時,註解在方法中,註解後括號中是鍵,跟在後面的是值,將每個請求參數都存放至請求體中
  • @FieldMap:Post請求時,若是參數不少,能夠將參數集成到map集合,用此註解在方法中傳遞
  • @Body:若Post請求參數有多個,可統一封裝到一個類中,用此註解在方法中傳遞
  • @Path(): 註解在方法中,註解後括號中的是url上的佔位符,跟在後面的是填充到url佔位符上的字符串
  • @FormUrlEncoded():用於Post請求,將會自動將請求參數的類型調整爲application/x-www-form-urlencoded
  • @Multipart(): 用於Post請求,上傳
  • @Part(): 用於Post請求,註解在上傳的方法中,上傳的參數
  • @Headers(): 添加許多請求頭,括號內爲請求頭內容
  • @Header(): 添加一個請求頭,有重名的將會覆蓋

基本使用

  1. 建立請求方法java

    public interface RequestService {
     	@GET("users/{user}/repos")
     	Observable<RequestResult> getDatas(@Path("user") String user, @Query("key") String value);
     }
    複製代碼
  2. 建立Retrofit實例react

    OkHttpClient okHttpClient = new OkHttpClient.Builder()
                 .connectTimeout(5, TimeUnit.SECONDS)
                 .readTimeout(5, TimeUnit.SECONDS)
                 .writeTimeout(5, TimeUnit.SECONDS)
                 .build();
    
     Retrofit retrofit = new Retrofit.Builder()
             .baseUrl("") //網絡請求URL相對固定的地址
             .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) //與rxjava聯合使用
             .addConverterFactory(GsonConverterFactory.create()) //gson解析返回值
             .client(okHttpClient) //使用OkHttp請求
             .build();
    複製代碼
  3. 建立請求Apiandroid

    RequestService requestService = retrofit.create(RequestService.class);
    複製代碼
  4. 發起請求api

    Observable<RequestResult> observable = requestService.getDatas(user, value);
     observable.subscribe(Subscriber)......複製代碼
相關文章
相關標籤/搜索