Retrofit-入门使用
1. 在模块目录下的build.gradle
dependencies {
compile "com.squareup.retrofit2:retrofit:2.1.0"
compile "com.squareup.retrofit2:converter-gson:2.1.0"
}
2. 请求服务接口类-注解对应服务器接口
public interface HttpService {
String SERVER_HOST = "http://xx.xx.xx.xx";
String CONTENT_PATH = "/xx";
class factory {
private static volatile HttpService instance;
public static HttpService getHttpService() {
if (instance == null) {
synchronized (HttpService.class) {
if (instance == null) {
Retrofit rf = new Retrofit.Builder().baseUrl(HttpService.SERVER_HOST).build();
HttpService hs = rf.create(HttpService.class);
instance = hs;
}
}
}
return instance;
}
}
@GET(CONTENT_PATH + "/api/app/list?type=sense")
Call<ResponseBody> list(@Header("DAAUTH") String token);
@GET(CONTENT_PATH + "/api/app/navlist?type=sense")
Call<ResponseBody> favlist(@Header("DAAUTH") String token);
@GET(CONTENT_PATH + "/api/app/fav?type=sense")
Call<ResponseBody> fav(@Header("DAAUTH") String token, @Query("appid") String appid);
@GET(CONTENT_PATH + "/api/app/unfav?type=sense")
Call<ResponseBody> unfav(@Header("DAAUTH") String token, @Query("appid") String appid);
@GET(CONTENT_PATH + "/api/auth/login/")
Call<ResponseBody> loginByBasic(@Header("DAAUTH") String basic);
@GET(CONTENT_PATH + "/api/auth/login/")
Call<ResponseBody> loginByToken(@Header("DAAUTH") String token);
}
这里采用了一个单例模式,在定义的接口服务类中声明一个内部类factory来定义与返回HttpService的单例,内部直接使用了Retrofit进行创建。
3.具体调用
HttpService hs = HttpService.factory.getHttpService();
String token = "token 5cd61e10d242937a13ec40f671db19d5";
Call<ResponseBody> call = hs.list(token);
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
try {
ResponseBody body = response.body();
if (body != null) {
Log.d(TAG, body.string());
}
} catch (IOException e) {
Log.e(TAG, e.getMessage());
}
} @Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
if(t.getClass().equals(SocketTimeoutException.class)) {
Toast.makeText(MainActivity.this, "Connect Timeout...", Toast.LENGTH_SHORT).show();
String msg = t.getMessage();
Log.e(TAG, msg);
}
}
});
简单的使用方法,Retrofit有更多的接口方法可供使用。
Retrofit-入门使用的更多相关文章
- Retrofit 入门学习
Retrofit 入门学习官方RetrofitAPI 官方的一个例子 public interface GitHubService { @GET("users/{user}/repos&qu ...
- Retrofit入门
1 Retrofit retrofit = new Retrofit.Builder() .addConverterFactory(ScalarsConverterFactory.create()) ...
- Retrofit 入门和提高
首先感谢这个哥们,把我从helloworld教会了. http://blog.csdn.net/angcyo/article/details/50351247 retrofit 我花了两天的时间才学会 ...
- Android开发 retrofit入门讲解 (RxJava模式)
前言 retrofit除了正常使用以外,还支持RxJava的模式来使用,此篇博客讲解如何使用RxJava模式下的retrofit 依赖 implementation 'com.squareup.ret ...
- Android开发 retrofit入门讲解
前言 retrofit基于okhttp封装的网络请求框架,网络请求的工作本质上是 OkHttp 完成,而 retrofit 仅负责网络请求接口的封装.如果你不了解OKhttp建议你还是先了解它在来学习 ...
- Retrofit 从入门到了解【总结】
源码:https://github.com/baiqiantao/RetrofitDemo.git 参考:http://www.jianshu.com/p/308f3c54abdd Retrofit入 ...
- Retrofit 简介 wiki 文档
简介 Type-safe HTTP client for Android and Java by Square, Inc. GitHub主页:https://github.com/square/ret ...
- Android开发 retrofit下载与上传
前言 此博客只讲解retrofit下载与上传的使用,其实与其说是retrofit的下载与上传还不如说,依然是Okhttp的下载与上传.如果你需要了解retrofit入门请查看这篇博客(此博客不在详细讲 ...
- code style
http://www.jianshu.com/p/0a984f999592# https://github.com/drakeet/LayoutFormatter https://github.com ...
- Android进阶:七、Retrofit2.0原理解析之最简流程【上】
retrofit 已经流行很久了,它是Square开源的一款优秀的网络框架,这个框架对okhttp进行了封装,让我们使用okhttp做网路请求更加简单.但是光学会使用只是让我们多了一个技能,学习其源码 ...
随机推荐
- Java中的值传递和地址传递(传值、传引用)
首先,不要纠结于 Pass By Value 和 Pass By Reference 的字面上的意义,否则很容易陷入所谓的“一切传引用其实本质上是传值”这种并不能解决问题无意义论战中.更何况,要想知道 ...
- (转)Linux运维MySQL必会面试题100道
老男孩教育Linux运维班MySQL必会面试题100道 (1)基础笔试命令考察 (要求:每两个同学一组,一个口头考,一个上机实战作答,每5个题为一组,完成后换位) 1.开启MySQL服务 2.检测端口 ...
- CentOS6.4 安装Maven及Nexus仓库代理
本文安装的apache-maven-3.5.0-bin.tar.gz,nexus-2.9.0-04-bundle.tar.gz 1.由于网络并不是特别好我这边是通过本地下载过来,通过sftp上传至Ce ...
- linux-pm2用法
devo.ps团队对JavaScript的迷恋已经不是什么秘密了;node.js作为服务器端,AngularJS作为客户端,某种程度上说,我们的堆栈是用它建成的.我们构建静态客户端和RESTful J ...
- python 初级/中级/高级/核心
"一等对象": 满足条件:1.在运行时创建 2.能赋值给变量或数据结构中的元素 3.能作为参数传递给函数 4.能作为函数的返回结果 [ 整数.字符串.字典."所有函数&q ...
- 一:HttpClient知识整理
一:httpclient 简介 HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支 ...
- 十二 Cent OS下 tomcat启动项目响应速度很慢
在tomcat部署了web项目,每次启动项目都需要花费2-3分钟,甚至有的时候需要花费10分钟左右,实在是太慢了. 在网上查找解决方案,把 jdk/jre/lib/security/java.secu ...
- 关于css伪类,伪元素详解总结
伪类 伪类就是一种虚构的状态或者说是一个具有特殊属性的元素可以使用CSS进行样式修饰.常见的几种伪类是: :link , :visited , :hover , :active , :first-ch ...
- ArrayList的使用方法详解(转)
1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和I ...
- GeoJSON相关操作
简介 本文主要介绍GEOJSON相关的操作 环境 gt-geojson-.jar,jts-1.8.jar 直接上代码 代码 wkt格式的geometry转成json格式 public String e ...