Retrofit
简介:对OkHttp的封装
根据请求接口,获取响应
注解
方法注解
@GET:声明为GET请求方式
@POST:声明为POST请求方式
@HTTP:声明为自定义请求方式
标记注解
@FormUrlEncoding:对post请求,声明请求体为表单
@Multipart:对post请求,声明请求体为多类型
@Streaming:对post请求,声明请求体为流
参数注解
@Query:对get请求:设置接受的参数名
@Field:对post请求:设置接受的参数名
@QueryMap:对get请求:设置接受参数为Map<String,String>集合
@FieldMap:对post请求:设置接受参数为Map<String,String>集合
其他注解
@Path
@Header
@Headers
@Url
方法
(Retrofit)
Retrofit retrofit = new Retrofit.Builder().baseUrl("https://www.httpbin.org/").build();
返回值类型:Retrofit
返回值作用:生成Retrofit对象
作用:根据基本url,生成Retrofit对象
Retrofit retrofit.create(HttpbinService.class);
参数:
HttpbinService.class 是请求接口对象
返回值:HttpbinService 接口对象
返回值意义:获取请求接口对象
作用:获取请求接口对象,调用请求接口定义的方法
使用步骤
1. 生成请求接口 service:定义请求方式,请求体类型,接受参数名
2. 生成Retrofit对象,将请求接口传入
3. 调用生成接口对象中的方法,传参数值,enquqe获取响应值
使用
// 1. 生成请求接口定义,方式,请求体,参数名 public interface HttpbinService3 { // 设置请求方式,请求体类型,表单 @POST("post") @FormUrlEncoded Call<ResponseBody> post(@Field("userName")String userName,@Field("password")String password); } // 2. 生成retrofit对象,传入接口,调用接口对象定义方法 Retrofit retrofit = new Retrofit.Builder().baseUrl("https://www.httpbin.org/").build(); HttpbinService3 httpbinService3 = retrofit.create(HttpbinService3.class); httpbinService3.post("lance","123").enqueue(new Callback<ResponseBody>() { @Override public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) { try { Log.i(TAG, "onResponse: "+response.body().string()); } catch (IOException e) { e.printStackTrace(); } } @Override public void onFailure(Call<ResponseBody> call, Throwable t) { } });