OkHttp+Retrofit封装请求接口
引入依赖pom.xml
<dependency>
<groupId>com.squareup.retrofit2</groupId>
<artifactId>converter-jackson</artifactId>
<version>2.11.0</version>
</dependency>
示例
请求接口封装服务类
import com.cnblogs.javalouvre.vo.Repo;
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Path;
public interface GitHubService {
@GET("users/{user}/repos")
Call<Repo[]> listRepos(@Path("user") String user);
}
响应内容封装类
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
@JsonIgnoreProperties(ignoreUnknown = true)
public class Repo {
@JsonProperty("id")
private String id;
@JsonProperty("node_id")
private String nodeId;
@JsonProperty("name")
private String name;
@JsonProperty("full_name")
private String fullName;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getNodeId() {
return nodeId;
}
public void setNodeId(String nodeId) {
this.nodeId = nodeId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
@Override
public String toString() {
return "{\"id\":\"" + this.id + "\",\"nodeId\":\"" + this.nodeId + "\",\"name\":\"" + this.name + "\",\"fullName\":\"" + this.fullName + "\"}";
}
}
测试
final OkHttpClient client = (new OkHttpClient.Builder())
.connectTimeout(3000, SECONDS)
.readTimeout(3000, SECONDS)
.writeTimeout(3000, SECONDS)
.retryOnConnectionFailure(true).build();
final String baseUrl = "https://api.github.com/";
final JacksonConverterFactory factory = JacksonConverterFactory.create();
final Retrofit retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.client(client)
.addConverterFactory(factory)
.build();
final GitHubService gitHubService = retrofit.create(GitHubService.class);
try {
final Response<Repo[]> resp = gitHubService.listRepos("octocat").execute();
Arrays.asList(resp.body()).forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
-----------------------------------------------------------------------------------------------------------
薔薇猛虎皆成個性,陽光雨露俱是天恩!
薔薇猛虎皆成個性,陽光雨露俱是天恩!
浙公网安备 33010602011771号