直接干
所用依赖
//retrofit2 implementation 'com.squareup.retrofit2:retrofit:2.6.0'//解析到封装类 implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
1.新建接口
Call<TestDataBean> getTestData();这里返回一个实体类,用到的就是上述第二个依赖
现在说明一下常用的注解
get请求中
方法注解
@GET("url")参数注解
@Query("key") String value 用于路径拼接 @QueryMap("key") Map<Object,Object> map 使用map携带key/value @Path("id") String id 方法注解中的路径添加"/{id}"用于某些业务动态传递 @Url String url 用于不是以baseUrl开头的请求Post请求中
方法注解
@FormUrlEncoded @POST参数注解
@Field("key") String value 请求体的参数 @FieldMap("key") Map<Object,Object> map 使用map携带key/value @Body TestDataBean bean 如果同时使用了addConverterFactory(GsonConverterFactory.create()),那么你的请求参数会作为json格式的字符串传递给服务器其他的
@Headers("Domain-Name: xxxxxx") 添加请求头 @Streaming 在response中获取输入流,读取数据保存
创建Retrofit实例
Retrofit实例没必要创建多个,实例化一次就可以了public class HttpMode { private ServiceApi api; public HttpMode() { Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://xxx.xxx.xxx/")//共同的基路径 .addConverterFactory(GsonConverterFactory.create())//把结果解析到实体类 .build(); api = retrofit.create(ServiceApi.class); } public void getHttp() { api.getTestData("key")//这里的参数视接口定义的参数而定 .enqueue(new Callback<TestDataBean>() { @Override public void onResponse(Call<TestDataBean> call, Response<TestDataBean> response) { Log.d("response",response.body().toString()); } @Override public void onFailure(Call<TestDataBean> call, Throwable t) { Log.d("Throwable",t.getMessage()); } }); } }