Retrofit一依赖于OkHttp 的请求库

首先我们先看gitHup官方上的介绍
A type-safe HTTP client for Android and Java
Android和Java的类型安全的HTTP客户端请求库
那么到底什么是Retrofit 框架呢
Retrofit 是Squarre公司出品的目前非常流行的网络框架,效率高,实现简单.运用注解原理和动态代理,极大的简化了网络请求得繁琐步骤,非常适合处理REST ful网络请求.目前版本是2

Retrofit 默认使用OKHttp处理请求
默认使用Gson解析

Retrofit2 实现步骤
1.定义一个接口(封装URL地址和数据请求)
2.实例化Retrofit
3.通过Retrofit 实例创建接口服务对象
4.接口对象调用接口中的方法,获得Call对象
5.Call 对象执行请求(异步,同步)

Retrofit2 常用的注解接口
@GIT GET网络请求
@POST POST 网络请求
@Headers 头部参数信息
@Path 路径参数,替换url的之中”{” 和”}” 包括的部分
@Query 查询参数 和GET请求连用 在URL 地址中追加类似于”pager=1”的参数
@QueryMap 查询参数集合 ,在url追加中类似”type=text&pager=1”
@FormUrlEcoded 对表单域中内容进行编码处理,避免乱码
@Field 指定from表单域中每个控件 的name 及相应数值
@FieldMap 表单域集合
@Multipart Post提交分块请求,如果是上传文件,必须指定Multipart
@Part POST提交分块请求
@Body POST提交分块请求

在下面的例子当中采用与GitHub一些相关api进行演示。在这里首先需要添加访问网络的权限。

1.添加Gradle依赖项
  在这里我们最好查看一下retrofit的官网添加最新依赖。
  这里写图片描述

这两依赖建议导入下面的那个
compile ‘com.squareup.retrofit2:retrofit:2.0.1’
compile ‘com.squareup.retrofit2:converter-gson:2.0.1’
2.创建API接口
  在retrofit中通过一个Java接口作为http请求的api接口。
public interface GitHubApi {

@GET("repos/{owner}/{repo}/contributors")

//定义了一个方法
//返回值类型是Call

Call<ResponseBody> contributorsBySimpleGetCall(@Path("owner") String owner, @Path("repo") String repo);

}

3.创建retrofit实例
  在这里baseUrl是在创建retrofit实力的时候定义的,我们也可以在API接口中定义完整的url。在这里建议在创建baseUrl中以”/”结尾,在API中不以”/”开头和结尾。
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(“https://api.github.com/“)
.build();

4.调用API接口
  在调用API接口请求后,获得一个json字符串,通过Gson进行解析,获得login以及contributions。
GitHubApi repo = retrofit.create(GitHubApi.class);

Call<ResponseBody> call = repo.contributorsBySimpleGetCall(mUserName, mRepo);

call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
try {
Gson gson = new Gson();
ArrayList contributorsList = gson.fromJson(response.body().string(), new TypeToken

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值