社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
Demo源码地址:https://gitee.com/olleh/MyRetrofit2
json数据请求:
https://gank.io/api
json在线解析:
https://www.json.cn/
Retrofit官方地址
https://github.com/square/retrofit
相关资料:
https://blog.csdn.net/carson_ho/article/details/73732115
def retrofit_version = "2.1.0"
def rxjava_version = "2.0.1"
//RxJava的依赖包
implementation 'io.reactivex.rxjava2:rxjava:' + rxjava_version
//RxAndroid的依赖包
implementation 'io.reactivex.rxjava2:rxandroid:' + rxjava_version
//Rxjava + retrofit 用到的一个依赖库,使接口回调的数据以Rxjava形式供我们接受
implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0-RC3'
//retrofig依赖包
implementation 'com.squareup.retrofit2:retrofit:' + retrofit_version
//自动将服务器返回的数据 以及 我们传给一个JavaBeen实体,转换成json
implementation 'com.squareup.retrofit2:converter-gson:' + retrofit_version
//gson实体解析库
implementation 'com.google.code.gson:gson:2.6.2'
//OKHttp日志拦截器,OKHttp官方提供。
implementation 'com.squareup.okhttp3:logging-interceptor:3.3.0'
https://gank.io/api/random/data/Android/10
package com.example.zhangyu.myretrofit2.Bean;
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Path;
public interface GankApi {
/**
* 数据类型:福利 | Android | iOS | 休息视频 | 拓展资源 | 前端
* 个数: 数字,大于0
*
* @param type
* @param size
* @return
*/
@GET("api/random/data/{type}/{size}")
Call<RandomData> getRandomData(@Path("type") String type,@Path("size") String size);
@GET
Observable<RandomData> getRandomDataRx(@Url String url);
}
private void getData() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://gank.io/")
.addConverterFactory(GsonConverterFactory.create())
.build();
GankApi gankApi = retrofit.create(GankApi.class);
Call<RandomData> data = gankApi.getRandomData("福利", "10");
data.enqueue(new Callback<RandomData>() {
@Override
public void onResponse(Call<RandomData> call, Response<RandomData> response) {
//textView.setText(response.body().toString());
List<RandomData.ResultsBean> results = response.body().getResults();
//Toast.makeText(context, ""+results.toString(), Toast.LENGTH_SHORT).show();
getResults(results);
}
@Override
public void onFailure(Call<RandomData> call, Throwable t) {
}
});
}
private void getDataRx() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://gank.io/")
.addConverterFactory(GsonConverterFactory.create())
//用到Rxjava的时候,需要加入这个
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
GankApi gankApi = retrofit.create(GankApi.class);
Observable<RandomData> randomDataRx = gankApi.getRandomDataRx("https://gank.io/api/random/data/福利/10");
randomDataRx.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<RandomData>() {
@Override
public void accept(RandomData randomData) throws Exception {
List<RandomData.ResultsBean> results = randomData.getResults();
getResults(results);
}
});
}
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!