珍惜作者劳动成果,如需转载,请注明出处。
http://blog.csdn.net/zhengzechuan91/article/details/50337883
Retrofit(Github地址)是square公司一套开源的http框架,简单易用,并且支持okhttp和RxJava,如果你不想为配置繁杂的http请求而写一套自己的网络请求框架,那么这套优雅的框架你不妨试试。
使用
先来说说这个框架的使用:
首先生成RestAdapter代理的接口RealService
RestAdapter adapter = new RestAdapter.Builder()
.setClient()
.setEndpoint()
.setRequestInterceptor()
.setConverter()
.setLogLevel(LogLevel.FULL)
.build();
RealService real = adapter.create(RealService.class);
然后在接口RealService中定义:
- 同步
public interface RealService {
@GET("/info/")
String getString(@Query("id") String id)
}
如果是上面这种没有callback的同步方式,则需注意在非UI线程中调用。
String id = "1";
String info = real.getString(id);
- 异步
public interface RealService {
@GET("/info")
void getString(@Query("id") String id,
Callback<String> callback)
}
而如果参数中有callback的话,则可以直接在UI线程中调用,而返回值会通过callback返回。
String id = "1";
Callback<String> callback = new Callback() {
void success(String var1, Response var2);
void failure(RetrofitError var1);
}
real.getString(id, callback);
这样我们我获取到了API返回的数据,然后再根据这些数据做一些别的处理,使用是不是很简单呢?
上面我们看到参数、Url和请求方式都是通过注解的方式设置的,非常简单方便。
注解
首先来看一些注解的定义,这个在我们添加参数时还是很重要的:
作用于注解的注解
- RestMethod
@Documented
//这个注解是用于注解上面的
@Target({ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface RestMethod {
//请求方式
String value();
//是否有body
boolean hasBody() default false;
}
作用于方法的注解
- GET<