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();
}
});