开发日记:项目中对第三方开源库的应用。
项目初期涉及到了很多第三方库的应用,逐一做一下记录吧。
Retrofit
一款解决REST APIs的第三方开源库,基于注解的添加访问地址和请求方式让代码看上去特别清晰。下面就说一下我在项目中的应用。
加入Gradle依赖:
dependencies {
compile 'com.squareup.retrofit:retrofit:1.9.0'
}
以一个简单的POST请求为例:
首先定义一个Service:
public interface LoginService {
@POST("/login") //请求的地址
void login(@Body RequestLogin requestLogin, Callback<Response> result);
}
RequestLogin里面就是封装了请求参数的对象,Retrofit会帮自动转成字节流。
Callback<T> 是可以定义返回的类型的,因为Retrofit默认是帮我们把返回的json串转为对象,如果是Respouse的话,就是表示获得返回的源数据。
然后通过RestAdapter创建一个LoginService的对象,就可以发起请求了:
String URL = "http://www.baidu.com"; //请求的域名
LoginService loginService = new RestAdapter.Builder().setEndpoint(URL).build().create(LoginService.class);
loginService.login(requestLogin,new Callback<Response>)(){
<span style="white-space:pre"> </span>@override
<span style="white-space:pre"> </span>public void success(Response response,Response Response){}
<span style="white-space:pre"> </span>@override
<span style="white-space:pre"> </span>public void failure(RetrofitError error){}
});
直接调用loginService的login方法请求就可以了,Retrofit集成了GSON,OKHttp,总之是个不错的工具,还在钻研中,现在已经基于这些封装成了Action来使用,确实比之前写Http请求的时候代码清晰规范了不少,也可以把注意力放在业务逻辑那一块了。