Retrofit2

Retrofit2的使用方法

implementation ‘com.squareup.retrofit2:retrofit:2.4.0’
implementation ‘com.squareup.retrofit2:converter-gson:2.4.0’
implementation ‘com.squareup.okhttp3:okhttp:3.10.0’

1. 添加依賴

Call call = userMgrService.getResponse(“parameter”);

2. 創建服務接口

public interface UserMgrService {
//
@GET("path")
Call<UserInfoBean> getResponse(@Query("parameter") String parameter);

//佔位符適用於路徑,不適合請求參數適用
@GET("path?{path}")
Call<UserInfoBean> getResponse(@Path("parameter") String parameter);

//Body可以將json字符串作爲請求體發送到服務器(即請RETROFIT將對象轉化爲字符串形式)
@POST("path")
Call<UserInfoBean> getResponse(@Body Bean bean);

//表單的形式傳遞鍵值對
@POST("path")
@FormUrlEncoded
Call<UserInfoBean> getResponse(@Field("parameter1") String parameter1,@Field("parameter2")   String parameter2);

//單文件上傳(上傳多個Body),每個part代表上傳一個Body
@POST("path")
@Multipart
Call<UserInfoBean> getResponse(@Part MultipartBody.Part photo, @Part("parameter1") String parameter1,  @Part("parameter2") String parameter2);
}

3. 創建bean類

//其變量名稱與返回數據變量名稱相同
public class Bean {
public String publisher;
public String title;
public String price;
public String author;
public String id;
public String image;
}

4. 創建retrofit實例

//傳入BaseUrl,以及返回數據文件類型的解析工具(Gson、Jackson、Moshi、Protobuf、WireSimple、XML、Scalars)
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(“BaseUrl”)
.addConverterFactory(GsonConverterFactory.create())
.build();

5. 創建接口實例

UserMgrService userMgrService = retrofit.create(UserMgrService.class);

6. 獲取接口返回對象

Call call = userMgrService.getResponse(“parameter”);

7. 調用enqueue方法

call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
Toast.makeText(getApplicationContext(),”請求成功”+response.body().image,Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(Call call, Throwable t) {
Toast.makeText(getApplicationContext(),”請求失敗”,Toast.LENGTH_SHORT).show();
}
});

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章