Springboot使用retrofit2
时间: 2023-07-22 10:03:41 浏览: 197
Spring Boot与Retrofit2可以很好地结合使用,以方便地进行网络请求。下面是使用Spring Boot和Retrofit2的基本步骤:
1. 添加依赖:在项目的pom.xml文件中添加以下依赖:
```xml
<dependencies>
<!-- Spring Boot Starter Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Retrofit2 -->
<dependency>
<groupId>com.squareup.retrofit2</groupId>
<artifactId>retrofit</artifactId>
<version>2.9.0</version>
</dependency>
<!-- Retrofit2 Gson Converter -->
<dependency>
<groupId>com.squareup.retrofit2</groupId>
<artifactId>converter-gson</artifactId>
<version>2.9.0</version>
</dependency>
</dependencies>
```
2. 创建Retrofit实例:在Spring Boot的配置类中,使用`@Bean`注解创建一个Retrofit实例,并配置相关参数,如接口的基本URL、Gson转换器等。
```java
import okhttp3.OkHttpClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
@Configuration
public class RetrofitConfig {
@Bean
public Retrofit retrofit() {
OkHttpClient client = new OkHttpClient.Builder()
// 可以添加自定义的OkHttpClient配置
.build();
return new Retrofit.Builder()
.baseUrl("http://api.example.com/") // 设置接口的基本URL
.client(client)
.addConverterFactory(GsonConverterFactory.create()) // 设置Gson转换器
.build();
}
}
```
3. 创建API接口:定义一个接口,用于描述请求的方法和参数。
```java
import retrofit2.Call;
import retrofit2.http.GET;
public interface ApiService {
@GET("users")
Call<List<User>> getUsers();
}
```
4. 使用Retrofit发起请求:在需要使用网络请求的地方,通过依赖注入的方式获取Retrofit实例,并调用接口方法发起请求。
```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import retrofit2.Call;
import retrofit2.Response;
import java.io.IOException;
import java.util.List;
@Service
public class UserService {
@Autowired
private Retrofit retrofit;
public List<User> getUsers() throws IOException {
ApiService apiService = retrofit.create(ApiService.class);
Call<List<User>> call = apiService.getUsers();
Response<List<User>> response = call.execute();
if (response.isSuccessful()) {
return response.body();
} else {
throw new IOException("请求失败:" + response.code());
}
}
}
```
这样就可以在Spring Boot项目中使用Retrofit2进行网络请求了。注意要根据实际需求进行配置和调整,例如添加拦截器、设置超时时间等。
阅读全文