Retrofit2 使用教程
Retrofit2 简单来说就是一个网络请求适配器,它将一个基本的Java接口通过动态代理的方式翻译成一个Http请求,并通过Okhttp去发送请求。此外它还具有强大的可扩展性,支持各种格式的转换,以及RxJava。
基本使用步骤
1、定义一个请求的接口
1 2 3 4 5 6 7 8 9 10 11 12
| public interface ApiService {
@POST("stock/query1") @FormUrlEncoded @Headers("Content-Type:application/json") Call<String> query( @Field("prefix") String prefix, @Field("code") String code, @Field("profitInc") double profitInc, @Field("revenueInc") double revenueInc);
@POST("stock/query1") Call<Response> query1( @Body Request request); }
|
2、创建Retrofit对象,及接口的实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| @Component public class RetrofitFactory {
@Value("${base.url}") private String baseUrl;
@Bean public Retrofit buildRetrofit(){ Gson gson = new GsonBuilder() .setLenient() .create(); return new Retrofit.Builder().baseUrl(baseUrl) .addConverterFactory(MyGsonConverterFactory.create(gson)) .build(); }
@Bean public ApiService buildApiService(){ return buildRetrofit().create(ApiService.class); } }
|
3、发起请求
1 2 3 4 5 6 7 8 9 10 11
| @Service public class StockServiceImpl implements StockService {
@Autowired private ApiService apiService;
@Override public Response query ( String marker , String code , double revenueInc , double profitInc ) throws IOException{ return apiService.query1(Request.build(marker,code,revenueInc,profitInc)).execute().body(); } }
|
注解及自定义转换器
参考:Retrofit解析2之使用简介 https://cloud.tencent.com/developer/article/1199060
Android 一份详细的Retrofit2.0基本使用总结 https://www.2cto.com/kf/201805/750839.html