Retrofit2 使用教程

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