Retrofit使用总结
2018-12-27 本文已影响13人
奔跑吧李博
引入库:
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
使用方式:
1.不带参数get请求:
@GET("dynamic/comment/comment")
Call<BaseBean> getData();
2.带参数get请求:
@GET("dynamic/comment/comment")
Call<BaseBean> getData(@Query("id") int id);
3.url带参数get请求:
@GET("dynamic/comment/{userName}/comment")
Call<BaseBean> getData(@Path("userName") String userName);
4.不带参数post请求:
@POST("dynamic/comment/comment")
Call<BaseBean> getData();
5.带参数post请求:需加入FormUrlEncoded注解
@FormUrlEncoded
@POST("dynamic/comment/comment")
Call<BaseBean> getData(@Field("userId") String userId,@Field("videoId") String videoId);
6.带header的post请求:
@FormUrlEncoded
@Headers("token:eyJhbGciOiJSUzI1NiVzZXIiLCJhdWQiOiJ7mI44kkb3t3jVDzxfwGRFjKSIKVNZCS5VuA")
@POST("dynamic/comment/comment")
Call<BaseBean> getData(@Field("userId") String userId,@Field("videoId") String videoId,@Field("content") String content,@Field("grade") String grade);
其他的PUT,DELETE方法使用相同,只是方法类型不同。
Retrofit使用创建:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
默认情况只能将请求结果转化为ResponseBody
需要转为自定义的Bean类,需要添加
.addConverterFactory(GsonConverterFactory.create())
否则,会报转化不合法异常