Retrofit2.0的简单使用

2018-02-25  本文已影响0人  mercuryli

Retrofit A type-safe HTTP client for Android and Java .

Retrofit 是Square公司开发的基于Android 的网络请求框架,Retrofit2是基于okhttp实现的。使用注解配置网络请求参数,支持RxJava,支持多种数据格式的解析,支持同步和异步的网络请求。

使用之前可以先看一下Retrofit官方教程以及Retrofit Github地址.

1.添加依赖

下载jar包引入或在gradle 文件中添加

compile 'com.squareup.retrofit2:retrofit:(insert latest version)'

记得要在Menifest.xml文件中添加网络权限 

<uses-permission android :name="android.permission.INTERNET" />

2.写result的实体类

public class AirResponse{

    Stringname;

    Stringpinyin;

    ......

}

3.写service接口

public interface TestService {

@GET("air/airCities")

CallgetAirResponse(@Query("key")String key);

}

4.创建retrofit实例

Retrofitretrofit=new Retrofit.Builder()

.baseUrl("http://web.juhe.cn:8080/environment/")  // baseurl 一定要以/结尾

        .addConverterFactory(GsonConverterFactory.create())  //  添加数据解析器用来处理result

        .build();

TestService service=retrofit.create(TestService.class);

Call responseCall=service.getAirResponse(key);

这里用到了GsonConverterFactory和gson 因此我们要添加如下依赖

compile'com.google.code.gson:gson:2.8.2'

compile'com.squareup.retrofit2:converter-gson:2.2.0'

5.发送异步或同步请求

// AirResponse response=responseCall.execute().body();//同步请求,不能在主线程中运行

//异步请求

responseCall.enqueue(new Callback() {

@Override

    public void onResponse(Call call, Response response) {

        if(response!=null){

                if(response.body().getResult()!=null){

                        textView.setText(""+response.body().getResult().size());

                }

       }

 }

@Override

    public void onFailure(Call call, Throwable t) {

        Toast.makeText(getApplicationContext(),t.getMessage().toString(),Toast.LENGTH_LONG).show();

    }

});

以上就是retrofit的简单使用

7.注解

Every method must have an HTTP annotation that provides the request method and relative URL. There are five built-in annotations: GET, POST, PUT, DELETE, and HEAD

每个方法都不许有http注解来支持请求方法和URL,有5种注解 GET, POST, PUT, DELETE, and HEAD

网络请求注解如下图所示

最常用的注解以及使用场景

最常用的注解以及使用场景

8.数据解析器

Gson: com.squareup.retrofit2:converter-gson

Jackson: com.squareup.retrofit2:converter-jackson

Moshi: com.squareup.retrofit2:converter-moshi

Protobuf: com.squareup.retrofit2:converter-protobuf

Wire: com.squareup.retrofit2:converter-wire

Simple XML: com.squareup.retrofit2:converter-simplexml

Scalars (primitives, boxed, and String): com.squareup.retrofit2:converter-scalars

支持多种数据格式,需要添加依赖

引用和参考:

Android Retrofit 2.0 的详细 使用攻略(含实例讲解)

上一篇 下一篇

猜你喜欢

热点阅读