分享到:
点击次数:333  更新时间:2016-10-11 16:24:04  【打印此页】  【关闭
棋牌游戏定制
当前位置:主页 > 新闻动态 > 技术交流 > 用于Java和Android应用的类型安全REST客户端:Retrofit

用于Java和Android应用的类型安全REST客户端:Retrofit

责任编辑:admin 发布时间:2016-11-17 14:36 浏览次数:

Retrofit将你的REST API变为Java接口,Retrofit把REST API返回的数据转化为Java对象方便操作,对于在项目中组织API调用,是一个不错的解决方案。其请求方法和相对URL都带有注解,使得代码变得更加简洁。使用注解,你可以很容易的添加一个请求主体,操纵URL或头文件,并添加查询参数。除此之外,每个函数可以定义为同步或异步,具有返回值的函数为同步执行,而异步函数没有返回值且最后一个参数为Callback对象。
    public interface RetrofitInterface { 
     
        // asynchronously with a callback 
        @GET("/api/user") 
        User getUser(@Query("user_id") int userId, Callback<User> callback); 
     
        // synchronously 
        @POST("/api/user/register") 
        User registerUser(@Body User user); 
    } 
     
     
    // example 
    RetrofitInterface retrofitInterface = new RestAdapter.Builder() 
                .setServer(API.API_URL).build().create(RetrofitInterface.class); 
     
    // fetch user with id 2048 
    retrofitInterface.getUser(2048, new Callback<User>() { 
        @Override 
        public void success(User user, Response response) { 
     
        } 
     
        @Override 
        public void failure(RetrofitError retrofitError) { 
     
        } 
    }); 
Retrofit默认情况下使用的是GSON,所以无需自定义解析,同时还支持其他转换器。
Retrofit turns your REST API into a Java interface.

public interface GitHubService {
  @GET("/users/{user}/repos")
  List<Repo> listRepos(@Path("user") String user);
}
The RestAdapter class generates an implementation of the GitHubService interface.

RestAdapter restAdapter = new RestAdapter.Builder()
    .setEndpoint("https://api.github.com")
    .build();

GitHubService service = restAdapter.create(GitHubService.class);
Each call on the generated GitHubService makes an HTTP request to the remote webserver.

List<Repo> repos = service.listRepos("octocat");
Use annotations to describe the HTTP request:

URL parameter replacement and query parameter support
Object conversion to request body (e.g., JSON, protocol buffers)
Multipart request body and file upload