用于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) { } }); </pre>Retrofit默認情況下使用的是GSON,所以無需自定義解析,同時還支持其他轉換器。<br />
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 theGitHubService
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
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!