retrofit底层实现是okhttp
retrofit就是对okhttp做了一层封装。把网络请求都交给给了Okhttp,我们只需要通过简单的配置就能使用retrofit来进行网络请求了。Retrofit框架存在的优势:
① Retrofit使用注解方式,大大简化了我们的URL拼写形式,而且注解含义一目了然,简单易懂;
② Retrofit使用简单,结构层次分明,每一步都能清晰的表达出之所以要使用的寓意;
③ Retrofit支持同步和异步执行,使得请求变得异常简单,只要调用enqueue/execute即可完成;
④ Retrofit更大自由度的支持我们自定义的业务逻辑,如自定义Converters。
⑤ Retrofit支持多种文件解析(Gson,Json,XML,Protobuf)
⑥ Retrofit支持RxJava
P.s.注意点
retrofit默认转换string成json obj,如果不需要gson转换,那么就指定泛型为ResponseBody,不要设置gson转换器
* 只能是ResponseBody,子类都不行,同理,下载上传时,也必须指定泛型为ResponseBody
response.body().string() 调用一次,就释放资源(也就是只能调用一次)
https://blog.csdn.net/my_truelove/article/details/78998996
示例
public interface ZhailuData1 {
@GET("api/v1/{id}")
Call<ResponseBody> getZhailuData(@Path("id") String index);
}
//而不能是:
@GET()
Call<String> getZhailuData(@Path("id") String index);
//如果这样指定,意思是,使用retrofit内部的json转换器,将response里的数据转换成一个实体类xxx,比如UserBean之类的,而String类明显不是一个有效的实体类,自然转换失败.
-------------------------------------------------------------------------------------------------------------官网教程
官方教程看起来有点乱,就直接看下面的常用操作吧
https://square.github.io/retrofit/
-------------------------------------------------------------------------------------------------------------常用操作
常用操作:
http://192.168.1.102:8080/springmvc_users/user/users