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 ...
随机推荐
- 翻转-Flip Columns For Maximum Number of Equal Rows
2020-02-20 11:00:06 问题描述: 问题求解: 翻转题一个常见的思路就是站在结束的状态来反推最初的状态,本题的解题思路就是站在结束的时候的状态来进行反推. 如果在最终的状态i-row是 ...
- vue封装axios
一.安装axios npm install --save axios 二.在src下面创建文件夹api=>api.js(接口集合)+http.js(封装的请求) 三.在main.js中引用api ...
- 在Fedora中安装OpenCV-Python | 二
目标 在本教程中 我们将学习在你的Fedora系统中设置OpenCV-Python.针对Fedora 18(64位)和Fedora 19(32位)进行以下步骤. 介绍 可以通过两种方式在Fedora中 ...
- Java&Spring过时的经典语录
字符串拼接:请用StringBuffer代替String直接相加提高性能 过去的理论 有没有人告诉过你开发中不要 String newString = "牛郎"+"织 ...
- 【翻译】.NET 5 Preview2发布
在4月2日,发布了.NET 5.0 Preview2,这次发布对一些功能和性能做了相关的改进,同时后面也会实施5.0版本更多的功能,其中一些功能目前也dotnet/designs在.NET 5 Pre ...
- Ali_Cloud++:阿里云Centos配置iptables防火墙教程
虽说阿里云推出了云盾服务,但是自己再加一层防火墙总归是更安全些,下面是我在阿里云vps上配置防火墙的过程,目前只配置INPUT.OUTPUT和FORWORD都是ACCEPT的规则 1):检查iptab ...
- 添加属于自己的python模块空间
在我们学习python的过程中会遇到很多时候,我们需要自己曾经写过的模块,它可能是一个函数或者其他的东西,,,, 下面是我的解决过程,如果你像将自己建立的文件夹当作你存放自己写的模块的地方,你需要将你 ...
- MySQL默认隔离级别为什么是RR
曾多次听到“MySQL为什么选择RR为默认隔离级别”的问题,其实这是个历史遗留问题,当前以及解决,但是MySQL的各个版本沿用了原有习惯.历史版本中的问题是什么,本次就通过简单的测试来说明一下. 1. ...
- 解决ASP.NET MVC返回的JsonResult 中 日期类型数据格式问题,和返回的属性名称转为“驼峰命名法”和循环引用问题
DateTime类型数据格式问题 问题 在使用ASP.NET MVC 在写项目的时候发现,返回给前端的JSON数据,日期类型是 Date(121454578784541) 的格式,需要前端来转换一下才 ...
- 实验十--- MySQL过程式数据库对象
实验十 MySQL过程式数据库对象 一. 实验内容: 1. 存储过程的创建和调用 2. 存储函数的创建和调用 3. 触发器的创建和触发 4. 事件的创建和修改 一. 实验项目:员工管理数据库 用于 ...