| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jopen
10年前发布

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

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


项目主页:http://www.open-open.com/lib/view/home/1403076886247

 本文由用户 jopen 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1403076886247.html
Retrofit Android开发 移动开发