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-入门使用的更多相关文章

  1. Retrofit 入门学习

    Retrofit 入门学习官方RetrofitAPI 官方的一个例子 public interface GitHubService { @GET("users/{user}/repos&qu ...

  2. Retrofit入门

    1 Retrofit retrofit = new Retrofit.Builder() .addConverterFactory(ScalarsConverterFactory.create()) ...

  3. Retrofit 入门和提高

    首先感谢这个哥们,把我从helloworld教会了. http://blog.csdn.net/angcyo/article/details/50351247 retrofit 我花了两天的时间才学会 ...

  4. Android开发 retrofit入门讲解 (RxJava模式)

    前言 retrofit除了正常使用以外,还支持RxJava的模式来使用,此篇博客讲解如何使用RxJava模式下的retrofit 依赖 implementation 'com.squareup.ret ...

  5. Android开发 retrofit入门讲解

    前言 retrofit基于okhttp封装的网络请求框架,网络请求的工作本质上是 OkHttp 完成,而 retrofit 仅负责网络请求接口的封装.如果你不了解OKhttp建议你还是先了解它在来学习 ...

  6. Retrofit 从入门到了解【总结】

    源码:https://github.com/baiqiantao/RetrofitDemo.git 参考:http://www.jianshu.com/p/308f3c54abdd Retrofit入 ...

  7. Retrofit 简介 wiki 文档

    简介 Type-safe HTTP client for Android and Java by Square, Inc. GitHub主页:https://github.com/square/ret ...

  8. Android开发 retrofit下载与上传

    前言 此博客只讲解retrofit下载与上传的使用,其实与其说是retrofit的下载与上传还不如说,依然是Okhttp的下载与上传.如果你需要了解retrofit入门请查看这篇博客(此博客不在详细讲 ...

  9. code style

    http://www.jianshu.com/p/0a984f999592# https://github.com/drakeet/LayoutFormatter https://github.com ...

  10. Android进阶:七、Retrofit2.0原理解析之最简流程【上】

    retrofit 已经流行很久了,它是Square开源的一款优秀的网络框架,这个框架对okhttp进行了封装,让我们使用okhttp做网路请求更加简单.但是光学会使用只是让我们多了一个技能,学习其源码 ...

随机推荐

  1. webpack+vue解决前端跨域问题

    webpack 跨域,在这里整理了一下逻辑首先不是为了axios库来进行跨域的,而是直接通过node的webpack设置代理来完成跨域的. 先贴一条自己请求的连接 1.设置自定义域: 在config目 ...

  2. ionic3 引入第三方库(jquery)

    安装 npm install jquery npm install @types/jquery 在需要的ts文件中引入,一定要在最顶端 import * as $ from '../../../nod ...

  3. crypto-js计算文件的sha256值

    1. 要在浏览器中计算出文件的sha256或md5值,基本思路就是使用HTML5的FileReader接口把文件读取到内存(readAsArrayBuffer),然后获取文件的二进制内容,然后获取文件 ...

  4. Java web验证码

    绘制验证码的主要步骤: 1,设置宽度高度,验证码个数,干扰线个数,可选字符,背景颜色,字体格式 2,画干扰线,随机生成颜色,字体,字符 3,设置缓冲区,得到画笔,设置边框,读写数据,存储图片. 1,S ...

  5. step4: Xpath的使用

    XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML 文档中对元素和属性进行遍历. XPath 包含一个标准函数库. XPath 是一个 W3C 标准. 语法简介: htt ...

  6. web渗透笔记

    1.安装nmap记录:(1)下载:wget http://nmap.org/dist/nmap-6.46.tar.bz2(最新版)wget http://nmap.org/dist/nmap-6.00 ...

  7. Bitbucket 关联 VS

    1.双击已经建立好的仓库 - 克隆仓库-目标路径选择一个空的文件夹,点击克隆 2.把已经建立好的项目拷贝的到刚刚那个空目录里面 3.在VS里面打开新路径下面的项目,点击提交即可; 我安装了Bitbuc ...

  8. JS大写转小写小写转大写,JS字符串大小写互换

    Array.prototype.map.call(str,a=>a.toUpperCase(a)==a?a.toLowerCase():a.toUpperCase()).join(''); 效果 ...

  9. 数据结构(四)--- 红黑树(RedBlock-Tree)

      文章图片来自邓俊辉老师课件 先提几个问题去思考学习本文 : 红黑树和2-4树(B-Tree)很像,那么它存在的动机又是什么呢 插入和删除操作的逻辑又是怎么样的,时间和空间复杂度可以达到怎么样 和 ...

  10. DataTables获取指定元素的行数据

    法1: 用jquey获取,var row = $('.edit').parent().parent(); 缺点:只能获取dom上的东西,不能获取没有渲染的数据 法2: 首先绑定行号到元素上 $('#e ...