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简单实例相关推荐

  1. android surface编程,Android中SurfaceView用法简单实例

    本文实例讲述了Android中SurfaceView用法.分享给大家供大家参考,具体如下: 这里贴上一个小程序代码,主要运用SurfaceView来实现在屏幕上画一个圆,你可以通过按方向键和触摸屏幕来 ...

  2. Android多媒体学习一:Android中Image的简单实例。

    在多媒体应用中,Image是最基础的功能模块,接下来我们将看看在Android中是如何获取和存储Image的.Android内嵌的Image获取和存储功能,可以让我们对于整个媒体框架有个比较全面的了解 ...

  3. Android studio观察日志简单实例

    代码: package com.example.ngslimport android.os.Bundle import android.util.Log import androidx.appcomp ...

  4. python简单程序实例-python简单实例训练(21~30)

    注意:我用的python2.7,大家如果用Python3.0以上的版本,请记得在print()函数哦!如果因为版本问题评论的,不做回复哦!! 21.题目:将一个正整数分解质因数.例如:输入90,打印出 ...

  5. java+birt+实例_BIRT简单实例

    以前很少做报表, 项目中的有报表的需求,暂时还只能用了一些简单的CSS,JS,控制,不过功能很有限. 收集一下资料.做了一个简单的, 但应用到项目中,还要断续学习一下. BIRT是一个Eclipse- ...

  6. Android TabLayout(选项卡布局)简单用法实例分析

    本文实例讲述了Android TabLayout(选项卡布局)简单用法.分享给大家供大家参考,具体如下: 我们在应用viewpager的时候,经常会使用TabPageIndicator来与其配合.达到 ...

  7. Retrofit解析网页Json数据简单实例

    简单使用了Butterknife+Retrofit 库配置 Project级的build.gradle classpath 'com.neenbedankt.gradle.plugins:androi ...

  8. Android Fragment 简单实例

    Android上的界面展示都是通过Activity实现的.Activity实在是太经常使用了.我相信大家都已经很熟悉了,这里就不再赘述. 可是Activity也有它的局限性,相同的界面在手机上显示可能 ...

  9. Android JNI简单实例(android 调用C/C++代码)

    转载自 xiechengfa 最终编辑 xiechengfa Android JNI简单实例关键字: android.jni Android的jni实例 android 的应用程序(Dalvik VM ...

  10. android 简单实现圆角,Android 实现圆角图片的简单实例

    Android 实现圆角图片的简单实例 实现效果图: 本来想在网上找个圆角的例子看一看,不尽人意啊,基本都是官方的Demo的那张原理图,稍后会贴出.于是自己自定义了个View,实现图片的圆角以及圆形效 ...

最新文章

  1. 调用startActivityForResult后,onActivityResult立刻回调
  2. Java实现话术词槽匹配_知识图谱与KBQA——槽填充
  3. 从动力学角度看优化算法:GAN的第三个阶段
  4. J2ME Nokia 模拟器 安装运行
  5. noip模拟赛 abcd
  6. matlab相机标定畸变参数,相机标定的原理与意义及OpenCVMatlab实现差异小结.doc
  7. 为何这名全栈工程师说“抛弃 React、Angular”?
  8. SQL SERVER 和EXCEL的数据导入导出
  9. 安全教育平台账号后四位_安全教育平台登录账号是什么?
  10. 宽带密码忘了怎么办?ADSL宽带账号密码找回教学
  11. 形式化方法 | Proof Engineering in Coq——Coq tatics 在命题逻辑证明中的应用
  12. 怎么把计算机隐藏文件显示出来,隐藏文件夹怎么显示出来
  13. 左耳朵耗子:我做系统架构的一些原则
  14. Ubuntu 完全卸载软件常用命令
  15. C语言:质数和合数的判断
  16. php下单声音提醒,拼多多商家怎么设置下单的声音?开启方法是什么?
  17. ADFS 概念与基本开发介绍
  18. Android 动态代理以及利用动态代理实现 ServiceHook
  19. Ubuntu20.04 ROS读取basler相机图像步骤。MATLAB2021b标定basler单目相机
  20. 哥德尔奖得主Cynthia Dwork:实现算法公平性,长路漫漫

热门文章

  1. ES中的Multi_match深入解读:best_fields、most_fields、cross_fields用法一览
  2. 运动型蓝牙耳机什么牌子好、最适合运动的耳机
  3. Windows系统服务器如何架设网站
  4. 错误: 找不到或无法加载主类 org.sang.BlogserverApplication
  5. u盘启动计算机的几种方式,U盘各种启动模式方法介绍 六种U盘启动模式
  6. 2021安徽阜阳高考成绩排名查询,2021年阜阳高考状元是谁分数多少分,历年阜阳高考状元名单...
  7. 基于android的备忘录_[译] 我个人的 Git 技巧备忘录
  8. Python大作业-爬取成都链家租房信息(大作业)源码
  9. FLEXPART安装笔记,ubantu,grib_api,eccodes,NetCDF
  10. 个人简历模板 个人简历表下载 个人简历模板下载