网络SDK1 --retrofit

Retrofit 写一个网络请求
以获取豆瓣 Top250 榜单为例,地址:https://api.douban.com/v2/movie/top250


1,首先,要使用Retrofit ,你肯定需要把它的包引入,在你的build.gradle文件中添加如下配置:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "com.hy.retrofitrxandroidsample"
        minSdkVersion 19
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
  
    compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'
    compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'
    compile 'com.squareup.retrofit2:adapter-rxjava:2.0.0-beta4'
    compile 'com.google.code.gson:gson:2.6.2'
    compile 'com.squareup.retrofit2:adapter-rxjava:2.0.0-beta4'

}

2,创建一个Retrofit 实例,并且完成相关的配置。

完成baseURL的配置;

完成解析工具的配置;

String baseUrl = "https://api.douban.com/v2/movie/";

Retrofit retrofit = new Retrofit.Builder()
        .baseUrl(baseUrl)
        .addConverterFactory(GsonConverterFactory.create())
        .build();
3,创建一个接口 ,代码如下:
public interface MovieService {
    @GET("top250")
    Call<MovieEntity> getTopMovie(@Query("start") int start, @Query("count") int count);
}
4,用Retrofit 创建 接口实例 MoiveService,并且调用接口中的方法进行网络请求,代码如下:
异步请求方式:
 MovieService movieService = retrofit.create(MovieService.class);
        Call<MovieEntity> call = movieService.getTopMovie(0, 10);
        call.enqueue(new Callback<MovieEntity>() {
            @Override
            public void onResponse(Call<MovieEntity> call, Response<MovieEntity> response) {
//                resultTV.setText(response.body().toString());
                Log.e(tag, "onResponse : " + response.body().toString());
            }

            @Override
            public void onFailure(Call<MovieEntity> call, Throwable t) {
//                resultTV.setText(t.getMessage());
                Log.e(tag, "onFailure : " + t.getMessage());
            }
        });

注解类型

第一类:网络请求方法


第二类:标记





第三类:网络请求参数





参考文献:

Retrofit + RxJava + OkHttp 让网络请求变的简单-基础篇

https://www.jianshu.com/p/5bc866b9cbb9

Android Retrofit 2.0 的详细 使用攻略(含实例讲解)
https://www.jianshu.com/p/a3e162261ab6

猜你喜欢

转载自blog.csdn.net/haobobo710/article/details/81001010