android retrofit实例,Retrofit2简单实例
Retrofit 是什么呢?Rotrofit是square开发的一个jar,便于客户端与服务器的数据交互。下面通过一个简单的例子,给大家起到一个抛砖引玉的作用.
1 在Android Studio中引入Retrofit2
compile 'com.squareup.retrofit2:retrofit:2.0.2'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
记得要在AndroidManifest中添加Intent 权限.
2 定义一个Bean,使用Gson完成请求数据与POJO的转换
package com.example.mvgos.retrofit2demo;
public class RepositoryBean {
String full_name;
String html_url;
int contributions;
@Override
public String toString() {
return full_name + " (" + contributions + ")";
}
}
3 定一个Interface,完成Retrofit初始化和封装网络请求涉及的接口
package com.example.mvgos.retrofit2demo;
import java.util.List;
import retrofit2.Call;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
import retrofit2.http.GET;
import retrofit2.http.Path;
public interface GitHubService {
@GET("orgs/{orgName}/repos")
Call> queryOrgRepos(
@Path("orgName") String orgName);
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.github.com/")
.addConverterFactory(GsonConverterFactory.create())
.build();
}
4调用接口完成网络请求
//同步调用,Android中不允许在Main Thread中进行网络请求,这里使用下面的一步请求
public List getContributorList() throws Exception{
GitHubService gitHubService = retrofit.create(GitHubService.class);
Call> call = gitHubService.queryOrgRepos("guchuanhangOrganization");
List result = call.execute().body();
return result;
}
//异步请求
public void getContributorListA() throws Exception {
GitHubService gitHubService = retrofit.create(GitHubService.class);
Call> call = gitHubService.queryOrgRepos("guchuanhangOrganization");
call.enqueue(new Callback>() {
@Override
public void onResponse(Call> call, Response> response) {
List conList=response.body();
}
@Override
public void onFailure(Call> call, Throwable t) {
textView.setText(t.getLocalizedMessage());
}
});
}
5 综合测试
//MainActivity.java
package com.example.mvgos.retrofit2demo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import java.util.Arrays;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import static com.example.mvgos.retrofit2demo.GitHubService.retrofit;
public class MainActivity extends AppCompatActivity {
public List getContributorList() throws Exception{
GitHubService gitHubService = retrofit.create(GitHubService.class);
Call> call = gitHubService.queryOrgRepos("guchuanhangOrganization");
List result = call.execute().body();
return result;
}
public void getContributorListA() throws Exception {
GitHubService gitHubService = retrofit.create(GitHubService.class);
Call> call = gitHubService.queryOrgRepos("guchuanhangOrganization");
call.enqueue(new Callback>() {
@Override
public void onResponse(Call> call, Response> response) {
List conList=response.body();
// Type conListType=new TypeToken>(){}.getType();
// Gson gson=new Gson();
// String resultString= gson.toJson(conList,conListType);
RepositoryBean[] myArray = conList.toArray(new RepositoryBean[0]);
textView.setText(Arrays.toString(myArray));
}
@Override
public void onFailure(Call> call, Throwable t) {
textView.setText(t.getLocalizedMessage());
}
});
}
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
textView = (TextView) findViewById(R.id.textView);
try{
getContributorListA();
}catch (Exception e){
e.printStackTrace();
}
}
});
}
}
苦于找不到服务器接口进行测试的同学请参考 github api.
android retrofit实例,Retrofit2简单实例相关推荐
- android surface编程,Android中SurfaceView用法简单实例
本文实例讲述了Android中SurfaceView用法.分享给大家供大家参考,具体如下: 这里贴上一个小程序代码,主要运用SurfaceView来实现在屏幕上画一个圆,你可以通过按方向键和触摸屏幕来 ...
- Android多媒体学习一:Android中Image的简单实例。
在多媒体应用中,Image是最基础的功能模块,接下来我们将看看在Android中是如何获取和存储Image的.Android内嵌的Image获取和存储功能,可以让我们对于整个媒体框架有个比较全面的了解 ...
- Android studio观察日志简单实例
代码: package com.example.ngslimport android.os.Bundle import android.util.Log import androidx.appcomp ...
- python简单程序实例-python简单实例训练(21~30)
注意:我用的python2.7,大家如果用Python3.0以上的版本,请记得在print()函数哦!如果因为版本问题评论的,不做回复哦!! 21.题目:将一个正整数分解质因数.例如:输入90,打印出 ...
- java+birt+实例_BIRT简单实例
以前很少做报表, 项目中的有报表的需求,暂时还只能用了一些简单的CSS,JS,控制,不过功能很有限. 收集一下资料.做了一个简单的, 但应用到项目中,还要断续学习一下. BIRT是一个Eclipse- ...
- Android TabLayout(选项卡布局)简单用法实例分析
本文实例讲述了Android TabLayout(选项卡布局)简单用法.分享给大家供大家参考,具体如下: 我们在应用viewpager的时候,经常会使用TabPageIndicator来与其配合.达到 ...
- Retrofit解析网页Json数据简单实例
简单使用了Butterknife+Retrofit 库配置 Project级的build.gradle classpath 'com.neenbedankt.gradle.plugins:androi ...
- Android Fragment 简单实例
Android上的界面展示都是通过Activity实现的.Activity实在是太经常使用了.我相信大家都已经很熟悉了,这里就不再赘述. 可是Activity也有它的局限性,相同的界面在手机上显示可能 ...
- Android JNI简单实例(android 调用C/C++代码)
转载自 xiechengfa 最终编辑 xiechengfa Android JNI简单实例关键字: android.jni Android的jni实例 android 的应用程序(Dalvik VM ...
- android 简单实现圆角,Android 实现圆角图片的简单实例
Android 实现圆角图片的简单实例 实现效果图: 本来想在网上找个圆角的例子看一看,不尽人意啊,基本都是官方的Demo的那张原理图,稍后会贴出.于是自己自定义了个View,实现图片的圆角以及圆形效 ...
最新文章
- 调用startActivityForResult后,onActivityResult立刻回调
- Java实现话术词槽匹配_知识图谱与KBQA——槽填充
- 从动力学角度看优化算法:GAN的第三个阶段
- J2ME Nokia 模拟器 安装运行
- noip模拟赛 abcd
- matlab相机标定畸变参数,相机标定的原理与意义及OpenCVMatlab实现差异小结.doc
- 为何这名全栈工程师说“抛弃 React、Angular”?
- SQL SERVER 和EXCEL的数据导入导出
- 安全教育平台账号后四位_安全教育平台登录账号是什么?
- 宽带密码忘了怎么办?ADSL宽带账号密码找回教学
- 形式化方法 | Proof Engineering in Coq——Coq tatics 在命题逻辑证明中的应用
- 怎么把计算机隐藏文件显示出来,隐藏文件夹怎么显示出来
- 左耳朵耗子:我做系统架构的一些原则
- Ubuntu 完全卸载软件常用命令
- C语言:质数和合数的判断
- php下单声音提醒,拼多多商家怎么设置下单的声音?开启方法是什么?
- ADFS 概念与基本开发介绍
- Android 动态代理以及利用动态代理实现 ServiceHook
- Ubuntu20.04 ROS读取basler相机图像步骤。MATLAB2021b标定basler单目相机
- 哥德尔奖得主Cynthia Dwork:实现算法公平性,长路漫漫
热门文章
- ES中的Multi_match深入解读:best_fields、most_fields、cross_fields用法一览
- 运动型蓝牙耳机什么牌子好、最适合运动的耳机
- Windows系统服务器如何架设网站
- 错误: 找不到或无法加载主类 org.sang.BlogserverApplication
- u盘启动计算机的几种方式,U盘各种启动模式方法介绍 六种U盘启动模式
- 2021安徽阜阳高考成绩排名查询,2021年阜阳高考状元是谁分数多少分,历年阜阳高考状元名单...
- 基于android的备忘录_[译] 我个人的 Git 技巧备忘录
- Python大作业-爬取成都链家租房信息(大作业)源码
- FLEXPART安装笔记,ubantu,grib_api,eccodes,NetCDF
- 个人简历模板 个人简历表下载 个人简历模板下载