Android Retrofit使用指南,让网络请求更简单。

原创 2016年08月31日 14:16:38

Retrofit与okhttp都是Square公司的出品,Retrofit是对okhttp做了一层封装,只要简单的配置,就可以是用Retrofit。


github地址:

https://github.com/square/retrofit


Gradle依赖:

compile 'com.squareup.retrofit2:retrofit:2.1.0'

注意,不支持android2.3以下的版本


以下,我们用apistore的查询IP地址的接口为实例演示如何使用Retrofit

http://apis.baidu.com/apistore/iplookupservice/iplookup


首先创建一个Http Api接口

public interface GitHubService {
        @Headers("apikey:20c017da573af76f99f90e21fea43062")
        @GET("iplookupservice/iplookup")
        Call<String> getRes(@Query("ip") String ip);
    }

接口里的每一个方法都必须有注解提供对应请求的方法和URL地址,例如@GET和@POST分别代表使用get和post的方式发起http请求,@Headers注解表示为请求添加一个Header,其他的注解还有@PUT和@DELETE,一个内置了这五种注解。

Call<T>代表返回数据的类型,这里我们返回的是String类型,也可以返回其他类型。

@Query注解请求参数的名称。以下为请求参数传入的几种示例:


@GET("group/{id}/users")
Call<List<User>> groupList(@Path("id") int groupId);

@GET("group/{id}/users")
Call<List<User>> groupList(@Path("id") int groupId, @Query("sort") String sort);

@GET("group/{id}/users")
Call<List<User>> groupList(@Path("id") int groupId, @QueryMap Map<String, String> options);

@POST("users/new")
Call<User> createUser(@Body User user);


接着我们需要创建一个Retrofit类:

Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("http://apis.baidu.com/apistore/")
                //增加返回值为String的支持
                .addConverterFactory(ScalarsConverterFactory.create())
                //增加返回值为Gson的支持
                .addConverterFactory(GsonConverterFactory.create())
                .build();

注意,这里addConverterFactory()方法为添加对返回数据类型的支持,同时要添加数据类型的依赖项,具体支持的类型如下:

  • Gsoncom.squareup.retrofit2:converter-gson
  • Jacksoncom.squareup.retrofit2:converter-jackson
  • Moshicom.squareup.retrofit2:converter-moshi
  • Protobufcom.squareup.retrofit2:converter-protobuf
  • Wirecom.squareup.retrofit2:converter-wire
  • Simple XMLcom.squareup.retrofit2:converter-simplexml
  • Scalars (primitives, boxed, and String): com.squareup.retrofit2:converter-scalars

例如,这里使用到String 和 Gson类型的返回值,则需要添加依赖项:

compile 'com.squareup.retrofit2:converter-scalars:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'

注意一点这里返回值的版本需要和Retrofit的版本一致。


接着创建一个刚才我们创建的接口的对象,并得到一个Call对象:

GitHubService service = retrofit.create(GitHubService.class);
        Call<String> getString = service.getRes("211.157.182.19");//参数为发起请求携带的参数


然后我们就可以发起请求了:

getString.enqueue(new Callback<String>() {
            @Override
            public void onResponse(Call<String> call, Response<String> response) {
                Log.v("retrofitJoe","ok:"+response.body().toString());
            }

            @Override
            public void onFailure(Call<String> call, Throwable t) {

            }
        });

如果返回的是JSON类型的数据时,Call<T>设置对应的实体类即可返回相应的实体。


版权声明:本文为博主原创文章,未经博主允许不得转载。

Android基于Retrofit2.0+RxJava的结合使用,让你的网络请求更简单

最近学习了一种现在非常火的请求网络的方式retrofit2.0,使用起来也是非常的简单它与rxjava的结合也会让你的请求更加的简单,下面上代码,简单的演示一下.     具体的使用 ...

Android基于Retrofit2.0+RxJava的结合使用,让你的网络请求更简单

最近学习了一种现在非常火的请求网络的方式,使用起来也是非常的简单,下面上代码,简单的演示一下. 具体的使用 1.首先在自己的工程中导入一下依赖,依赖千万别倒错了,不然就会出现问题.!! ...

Android基于Retrofit2.0+RxJava的结合使用,让你的网络请求更简单

最近学习了一种现在非常火的请求网络的方式retrofit2.0,使用起来也是非常的简单它与rxjava的结合也会让你的请求更加的简单,下面上代码,简单的演示一下. 具体的使用 1.首先在自...

Android网络请求开源框架Volley快速使用指南(2)——异步获取图片

直接上源码: /** * 利用Volley异步加载图片 * * 注意方法参数: * getImage(Context context,String im...

Android网络请求开源框架Volley快速使用指南(1)——发起Get和Post请求

1.下载编译好的jar包 http://download.csdn.net/detail/u012027644/8547825 2.get请求 RequestQueue mQueue = Volley...

使用Retrofit和Rxjava让你的网络请求更简单

去年的时候好多公司就已经使用Rxjava和Retrofit了,最近自自己学习了一下,感觉真的是很好用,让自己的网络请求变得更简单了,而且封装性极强。 首先做一下准备工作,导入需要引用的文件 compi...

Android 网络请求库Retrofit简单使用

载请标明出处: http://blog.csdn.net/u011974987/article/details/50895633; 什么是 Retrofit ?Retrofit 是一套 RESTfu...

Android中Retrofit+OkHttp进行HTTP网络编程的使用指南

Retrofit和OkHttp都是Square在GitHub上开源的第三方HTTP支持包,两个包可以搭配使用,本文即是来讲解Android中Retrofit+OkHttp进行HTTP网络编程的使用指南...

RxJava + Retrofit让Android网络请求简单效率

前言: Retrofit前面有篇特别讲解了:浅谈Android网络封装框架Retrofit 这里就不做过多的介绍了! Retrofit 除了提供了传统的 Callback 形式的 API,还有 R...

retrofit网络请求的简单封装使用

依赖 compile 'com.squareup.retrofit2:retrofit:2.1.0' compile 'com.squareup.retrofit2:converte...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android Retrofit使用指南,让网络请求更简单。
举报原因:
原因补充:

(最多只允许输入30个字)