Retrofit 网络访问框架简单使用
1.引入远程依赖:包括okhttp;retrofit2;retrofit的GSON解析器
compile'com.squareup.okhttp3:okhttp:3.2.0'
compile'com.squareup.retrofit2:retrofit:2.0.2'
compile'com.squareup.retrofit2:converter-gson:2.0.2'
2.初始化okhttpclient(可以设置更多的okhttp参数):
OkHttpClient client=new OkHttpClient();
若没有初始化okhttp,retrofit默认也是使用okhttp的
3.创建Retrofit
Retrofit retrofit=new Retrofit.Builder()
//设置OKHttpClient
.client(client)
//设置baseUrl,注意,baseUrl必须后缀"/"
.baseUrl("http://api.1396app.com/")
//添加Gson转换器
.addConverterFactory(GsonConverterFactory.create())
.build();
4.创建请求服务接口(一个HTTPGET请求)
public interface GitHubAPI{
@GET("api/app/version")//这里是跟在baseurl后面的,拼接起来完整的url=http://api.1396app.com/api/app/version
Call<AppEntity> retrofitGet(@Query("id") String id);
}
说明:@GET:声明为HTTPGET访问方式;@GET()里面是访问的url,是跟baseurl合在一起的;AppEntity是一个javabean,存放改接口放回的数据;@Query是Get请求的一种方式;@Query("id"),id是传入的参数;后面String id,id是参数值。
那么拼起来完整的URL=http://api.1396app.com/api/app/version?id=203(@Query表示了?pargram=203 ,这种Get请求方式)
5.在Acitivity中进行网络请求
GitHubAPI gitHubAPI=retrofit.create(GitHubAPI.class);
private void httpGet(GitHubAPI gitHubAPI){
Call<AppEntity> httpGet=gitHubAPI.retrofitGet("592");
httpGet.enqueue(new Callback<AppEntity>(){
@Override
public void onResponse(Call<AppEntity> call,Response<AppEntity> response){
AppEntity appEntity=response.body();
Log.e("MainActivity",response.toString());
} @Override
public void onFailure(Call<AppEntity>call,Throwablet){
Log.e("MainActivity","false");
}
});
}
更多:还在继续学习
Retrofit项目主页: http://square.github.io/retrofit/?spm=5176.100239.blogcont26705.4.HvebZh#introduction
Retrofit2 完全解析 探索与okhttp之间的关系:http://blog.csdn.net/lmj623565791/article/details/51304204
Retrofit 网络访问框架简单使用的更多相关文章
- Volley手写属于自己的万能网络访问框架
用户在调用层(Activity或Service中),发起一个网络请求,该请求肯定包含url,请求参数(requestParameter),以及我们需要给调用层提供一个请求成功或失败以后回调监听的接口d ...
- 基于Retrofit+RxJava的Android分层网络请求框架
目前已经有不少Android客户端在使用Retrofit+RxJava实现网络请求了,相比于xUtils,Volley等网络访问框架,其具有网络访问效率高(基于OkHttp).内存占用少.代码量小以及 ...
- Android网络请求框架之Retrofit实践
网络访问框架经过了从使用最原始的AsyncTask构建简单的网络访问框架(甚至不能称为框架),后来使用开源的android-async-http库,再到使用google发布的volley库,一直不懈的 ...
- Android下基于线程池的网络访问基础框架
引言 现在的Android开发很多都使用Volley.OkHttp.Retrofit等框架,这些框架固然有优秀的地方(以后会写代码学习分享),但是我们今天介绍一种基于Java线程池的网络访问框架. 实 ...
- [原创]一款基于Reactor线程模型的java网络爬虫框架
AJSprider 概述 AJSprider是笔者基于Reactor线程模式+Jsoup+HttpClient封装的一款轻量级java多线程网络爬虫框架,简单上手,小白也能玩爬虫, 使用本框架,只需要 ...
- android快捷开发之Retrofit网络加载框架的简单使用
大家都知道,安卓最大的特点就是开源化,这自然会产生很多十分好用的第三方API,而基本每一个APP都会与网络操作和缓存处理机制打交道,当然,你可以自己通过HttpUrlConnection再通过返回数据 ...
- 安卓开发常用网络请求框架OkHttp、Volley、XUtils、Retrofit对比
网络请求框架总结1.xutils 此框架庞大而周全,这个框架可以网络请求,同时可以图片加载,又可以数据存储,又可以 View 注解,使用这种框架很方便,这样会使得你整个项目对它依赖性太强,万一 ...
- Flutter学习(7)——网络请求框架Dio简单使用
原文地址: Flutter学习(7)--网络请求框架Dio简单使用 | Stars-One的杂货小窝 Flutter系列学习之前都是在个人博客发布,感兴趣可以过去看看 网络请求一般APP都是需要的,在 ...
- 一步步搭建Retrofit+RxJava+MVP网络请求框架(二),个人认为这次封装比较强大了
在前面已经初步封装了一个MVP的网络请求框架,那只是个雏形,还有很多功能不完善,现在进一步进行封装.添加了网络请求时的等待框,retrofit中添加了日志打印拦截器,添加了token拦截器,并且对Da ...
随机推荐
- Swift5.2 新特性
Print 函数传参新格式 let param = "参数" print(#"这是一个\#(param) xxxxx"#) 允许在模块中定义和标准库中名称一样的 ...
- Android 登陆功能的实现(访问WebServices 解析返回的JSON结果)
1. WebServices返回的JSON结果 { , "Result": [{ ", ", ", " }] } 2.访问WEB服务代码 i ...
- 什么是EIP、ESP、EBP
堆栈是一种简单的数据结构,是一种只允许在其一端进行插入或删除的线性表.允许插入或删除操作的一端称为栈顶,另一端称为栈底,对堆栈的插入和删除操作被称入栈和出栈.有一组CPU指令可以实现对进程的内存实现堆 ...
- 第三周java实验报告
实验三 Java基本程序设计(2) 实验时间 2018-9-13 第一部分:理论知识回顾 第一章 再次了解了java“白皮书”的关键术语,java的常见术语,对于大多数“白皮书”的关键术语依然 ...
- [Linux系统] CentOS7(RHEL7)重置root用户密码
1.系统启动时,按"e"进入编辑界面 2.编辑内容 将rhgb quiet修改为 init=/bin/sh : 然后按 ctrl+x . 3.修改root密码 mount -o r ...
- 熟悉使用Webdriver ---- 商品自动秒杀
前几天下载了Webdriver模块,经过简单的研究,发现这个模块可以做很多有意思的事情,下面我就用一个实例来理解webdriver的此处操作(完整代码在文章末尾). *浏览器:谷歌chrome浏览器 ...
- 《深入理解 Java 虚拟机》读书笔记:Java 内存模型与线程
正文 由于计算机的处理器运算速度与它的存储和通信子系统速度的差距太大了,大量的时间都花费在磁盘 I/O.网络通信或者数据库访问上,导致处理器在大部分时间里都处于等待其他资源的状态.因此,为了充分利用计 ...
- 使用Keras构建深度图像搜索引擎
动机 想象一下,如果有数十万到数百万张图像的数据集,却没有描述每张图像内容的元数据.我们如何建立一个系统,能够找到这些图像的子集来更好地回答用户的搜索查询? 我们基本上需要的是一个搜索引擎,它能够根据 ...
- Vue history路由模式 apache配置上线
1. 首先在vue项下的router.js 文件配置 mode为history模式,并且设置好对应的base选项 说明:base配置为你当前项目实际上线时所在的目录文件夹, 我这就是放在站点的根目录下 ...
- 【Pytest04】全网最全最新的Pytest框架fixture应用篇(2)
一.Fixture参数之params参数可实现参数化:(可以为list和tuple,或者字典列表,字典元祖等) 实例如下: import pytest def read_yaml(): '] @pyt ...