Ritrofit+Rxjava

Retrofit,Okhttp对每个Request统一动态添加header和参数(五) 文/Tamic 地址:http://blog.youkuaiyun.com/sk719887916?viewmode=list HeaderHow to Add header to Every Request 添加统一通用header, 通用参数,Retrofit 2 — How to Add Query Parameters to Every Request 阅读详情

示例地址
//http://result.eolinker.com/umIPmfS6c83237d9c70c7c9510c9b0f97171a308d13b611?uri=homepage

url地址

public class HttpConfig {

    public static String base_url = "http://result.eolinker.com/";
    public static String url = "umIPmfS6c83237d9c70c7c9510c9b0f97171a308d13b611";
}

定义借口

public interface RetrofitService {

    @GET("umIPmfS6c83237d9c70c7c9510c9b0f97171a308d13b611")
    Observable<Book> getSearchBook(@QueryMap Map<String, String> map);


}

Retrofit的工具类

public class RetrofitUtil {
    //单利模式
    private static RetrofitUtil retrofitUtil;
    private final Retrofit retrofit;

    public static RetrofitUtil getInstance() {
        if (retrofitUtil == null) {
            retrofitUtil = new RetrofitUtil();
        }
        return retrofitUtil;
    }

    //初始化Retrofit
    public RetrofitUtil() {
        retrofit = new Retrofit.Builder()
                .baseUrl(HttpConfig.base_url)
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                .addConverterFactory(GsonConverterFactory.create(new Gson()))
                .build();
    }

    //指定服务
    public <T> T createRequest(Class<T> clz) {
        T t = retrofit.create(clz);
        return t;
    }
}

Modle层调用

public class ModleImpl implements IModle{
    @Override
    public void getShowData(Map<String, String> map, final ShowDataListener showDataListener) {
        RetrofitUtil retrofitUtil = RetrofitUtil.getInstance();
        RetrofitService service = retrofitUtil.createRequest(RetrofitService.class);
        Observable<Book> observable = service.getSearchBook(map);
        observable.subscribeOn(Schedulers.newThread())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<Book>() {
                    @Override
                    public void onCompleted() {

                    }

                    @Override
                    public void onError(Throwable e) {
                        showDataListener.getDataError(e.getMessage());
                    }

                    @Override
                    public void onNext(Book book) {
                        Book.DataBean data = book.getData();
                        showDataListener.getDataSuccess(data);
                    }
                });

    }
}



没有封装的ritrofit应用:

Rxjava就是java语言开发中用于异步操作,RxJava最核心的两个东西是Observables(被观察者,事件源)和Subscribers(观察者)。Observables发出一系列事件,Subscribers处理这些事件。

Gradle:
    implementation 'com.jcodecraeer:xrecyclerview:1.5.9'
    implementation 'com.squareup.retrofit2:retrofit:2.1.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.1.0'
    implementation 'com.squareup.retrofit2:adapter-rxjava:2.1.0'

示例数据接口:

https://api.douban.com/v2/book/search?q=金瓶梅&tag=&start=0&count=1

1.定义接口,封装参数



public interface RetrofitService {

    @GET("book/search")
    Call<Book> getSearchBook(
          @Query("q") String name,
          @Query("tag") String tag,
          @Query("start") int start,
          @Query("count") int count
    );

}

2.创建 Retrofit 实例

        Retrofit retrofits = new Retrofit.Builder()
                // 设置网络请求的Url地址
                .baseUrl("https://api.douban.com/v2/")
                // 设置数据解析器
                .addConverterFactory(GsonConverterFactory.create(new GsonBuilder().create()))
                .build();

3.创建 网络请求接口 的实例

```
 RetrofitService service = retrofits.create(RetrofitService.class);
        Call<Book> call = service.getSearchBook("金瓶梅",null,0,1);
        call.enqueue(new Callback<Book>() {
            @Override
            public void onResponse(Call<Book> call, Response<Book> response) {
            // 得到数据
               Book.DataBean data = response.body().getData();

            }

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

            }
        });
告别偏色!手把手教你用i1Profiler 3.5为喷墨打印机制作专属ICC曲线(附D50/D65光源选择指南) 本文详细介绍了如何使用i1Profiler 3.5为喷墨打印机制作专属ICC曲线,解决设备偏色问题。从色彩管理基础、软件配置到色块打印与测量实战技巧,逐步指导用户完成曲线制作,并提供了D50/D65光源选择指南,确保色彩还原精准。适合摄影师和设计师提升打印质量。 阅读详情

相关推荐

金仓数据库KCM认证考试介绍【2025年4月更新】

金仓数据库认证资深专家KCM认证考试介绍

qq709869231的博客 3227

别再死记硬背了!用Selector模块从向量里‘捞’数据的5种实战用法(附Simulink模型)

本文详细介绍了Simulink中Selector模块的5种实战用法,帮助工程师高效提取多维数据。从基础配置到动态索引控制,再到多维信号处理和性能优化,全面解析如何避免死记硬背,灵活应用Selector模块提升数据处理效率。特别适合处理传感器数据流和复杂矩阵场景。

weixin_33730836的博客 288

详解STM32F407双重ADC同步采集与DMA传输的配置技巧及实战应用

本文详细解析了STM32F407双重ADC同步采集与DMA传输的配置技巧及实战应用。通过CubeMX配置、代码实现和常见问题解决方案,帮助开发者高效实现多通道数据同步采集,提升工业自动化和嵌入式系统的数据采集效率与精度。

ii567的博客 364

Retrofit简单使用

1.Ritrofit工具类 import retrofit2.Retrofit; import retrofit2.converter.gson.GsonConverterFactory; public class RetrofitUtils { private static volatile RetrofitUtils instance; private final Ret

gepeng_66666的博客 438

国科大学习资料--高级软件工程-复习题选择题答案

国科大学习资料–高级软件工程(罗铁坚 魏峻 刘丹)-复习题选择题答案 ’‘

无名何许人的博客 1165

【代码版本管理】SVN(Subversion)

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对SVN(Subversion)代码版本管理做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。

qq_35635374的博客 668

Retrofit工具类 + Rxjava

/** @详情 RXjava的被观察者 @创建日期 2018/12/29 15:00 */ public interface ObservedApis { //使用rxjava的时候,这里需要使用Observable @GET Observable get(@Url String url); @FormUrlEncoded @POST Observable post(@Url String...

black_amber的博客 387

6、深入解析Microsoft 365核心服务对比与迁移策略

本文深入解析了Microsoft 365的核心服务,包括身份和设备管理、现代设备配置体验、Exchange和SharePoint的迁移策略以及Microsoft Teams的协作功能。同时探讨了迁移过程中需要考虑的安全控制措施,为组织规划和实施云迁移项目提供了全面的指导和建议。

k8s6orchestrator的博客 106

Retrofit+RxJava工具类

package com.example.slx.exam_classify.utils; import android.os.Vibrator; import com.example.slx.exam_classify.http.ApiService; import com.example.slx.exam_classify.http.ServiceUrl; import com.jakewh...

love_xxxooo的博客 5517

小论文/大论文必备| YOLO26热力图可视化,支持8种常用热力图方法:GradCAM,GradCAMPlusPlus,XGradCAM,EigenCAM,HiResCAM等,助力小论文和大论文加分

本文介绍了如何为YOLO26模型添加热力图可视化功能,包括完整代码和使用教程。热力图能增强模型的可解释性,适用于论文中的实验对比和结果展示。文章提供了详细的代码实现,包含图像处理、热力图生成和结果可视化等功能,并指导用户如何创建Python文件、粘贴代码以及调整参数生成最佳热力图。通过设置不同层号,用户可以灵活控制热力图效果,最终结果将保存在指定文件夹中。

Ai缝合怪、助力小伙伴高效发论文 492

【速通RAG实战:索引】4.RAG文档解析技术

通过本文技术方案,可构建高精准、高效率的文档解析流水线,为 RAG 应用提供坚实的知识底座。核心在于**格式解析的鲁棒性**和**语义分块的准确性**,后续通过持续的性能优化和质量监控,逐步提升索引质量和检索效率。

2025博客之星Top81。专注AI工程化与架构实战。从分布式思维到模型部署,用工程化视角为你厘清AI落地的真实路径。 1545

Retorfig + RXjava封装网络请求工具类

1.导入依赖 //Retrofit2的依赖 implementation ‘com.squareup.retrofit2:converter-gson:2.0.0-beta4’ implementation ‘com.squareup.retrofit2:converter-gson:2.1.0’ //Rxjava依赖 implementation ‘io.reactivex.rxjava2:rx...

lsq_优快云的博客 363

基于FreeRedis实现的.NET Redis客户端缓存缓存键条件优雅过滤

在.NET开发中,使用Redis作为缓存解决方案是很常见的。FreeRedis是一个功能强大的Redis客户端库,它提供了丰富的功能和灵活性,使我们能够轻松地与Redis进行交互。在本文中,我们将探讨如何使用FreeRedis实现缓存键条件的优雅过滤,以提高缓存的效率和准确性。

RzuScala的博客 328

MVP+Ritrofit+RxJava+内存泄漏

前言 Retrofit 和RxJava已经出来很久了,很多前辈写了很多不错的文章,在此不得不感谢这些前辈无私奉献的开源精神,能让我们站在巨人的肩膀上望得更远。对于 RxJava 不是很了解的同学推荐你们看扔物线大神的这篇文章给 Android 开发者的 RxJava 详解一遍看不懂就看第二遍。Retrofit的使用可以参考Android Retrofit 2.0使用 本文内容是基于Retrof...

user_app的博客 653

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Retrofit+RxJava的工具类封装

public class RetrofitUtil { private final Retrofit retrofit; private static RetrofitUtil retrofitUtil; private RetrofitUtil() { retrofit = new Retrofit.Builder() ...

...... 770

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Retrofit+Rxjava请求工具类

一;此乃一个retrofit+Rxjava实现网络请求封装的一个工具类; 下边是参考依赖; compile 'io.reactivex.rxjava2:rxjava:2.0.8' compile 'io.reactivex.rxjava2:rxandroid:2.0.1' compile 'com.squareup.retrofit2:retrofit:

qq_36403434的博客 258

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Android基于Retrofit2.0+RxJava 封装的超好用的工具类

RetrofitClient基于Retrofit2.0封装的RetrofitClient.避免重复创建Retrofit实列.调用方便简洁.无需重复设置属性的步骤.可固定配置 Host 也可动态配置Url、请求头、参数等.支持文件下载和上传.支持json形式提交.支持扩展APIService统一处理无网络情况,和支持加载进度结合RxJava支持缓存机制优化取消使用原生的Retrofit请求网络,熟悉...

杨的博客 4034

Retrofit原理解析

Retrofit是一个RESful的HTTp网络请求框架的封装 原因是:网络请求的工作本质上是okHttp完成的,而Retrofit仅负责网络请求接口的封装 1.上图说明了啥 1.app应用程序通过Retrofit请求网络,实际上是使用Retrofit接口层封装请求参数,Header,Url等信息,之后由OKHttp完成后续的请求操作 2.在服务器返回数据之后,oktttp将原始的结果交给Retrofit,Retrofit根据用户的需求结果进行分析 在我们看Retrofit的构建过程 Ret

qq_26414049的博客 530

Carson带你学Android:这是一份详细的 Retrofit使用教程(含实例讲解)

前言 在Andrroid开发中,网络请求十分常用 而在Android网络请求库中,Retrofit是当下最热的一个网络请求库 今天,我将献上一份非常详细Retrofit v2.0的使用教程,希望你们会喜欢。 如果对Retrofit v2.0的源码感兴趣,可看文章:Android:手把手带你深入剖析 Retrofit 2.0 源码 目录![目录](http://upload-

Carson带你学Android 25万+

Android 网络框架 Retrofit2.0介绍、使用和封装

前言 时至今日,Android的网络框架不再像之前那么到处都是,随着Google把 HttpClient直接删掉,似乎意味着Android越来越成熟。网络框架中的佼佼者Volley也不再那么光鲜,取而代之的是 Retrofit 和 okHttp。 感觉很像 OnePiece 中白胡子的离去象征着时代的变革,新时代的开始,多弗的垮台象征着七武海制度的取缔一样,不会使用Retrofit + okH

baiiu 1万+

Retrofit 最简单的快速入门及自己封装

简单介绍及官方文档的坑 官方文档 http://square.github.io/retrofit/ Retrofit是Square公司开发的一款针对Android网络请求的框架,Retrofit2底层基于OkHttp实现的,OkHttp现在已经得到Google官方认可,大量的app都采用OkHttp做网络请求 Retrofit也就成了最火的网络请求框架之一,想着来研究一下Retrofit了…先看了

zhiyuan0932的博客 2万+

Retrofit详解

一:Retrofit是什么? 准确来说,Retrofit 是一个 RESTful 的 HTTP 网络请求框架的封装。 原因:网络请求的工作本质上是 OkHttp 完成,而 Retrofit 仅负责 网络请求接口的封装 我们先来看看下面这个图: 上图说明了如下几点: 1. App应用程序通过 Retrofit 请求网络,实际上是使用 Retrofit 接口层封装请求参数、Header、Url 等信息,之 后由 OkHttp 完成后续的请求操作。 2. 在服务端返回数据之后,OkHttp 将原始的结果交给

qq_30621333的博客 3万+

Retrofit2.0使用详解

retrofit是由square公司开发的。square在github上发布了很多优秀的Android开源项目。例如:otto(事件总线),leakcanary(排查内存泄露),android-times-square(日历控件),dagger(依赖注入框架),picasso(异步加载图片),okhttp(网络请求)等等。

李江东 6万+

Retrofit 框架的学习(巨详细)

Retrofit 框架的学习 1.Retrofit 简介 1.Retrofit是当下最热门的一个网络请求库,是基于OKhttp和HTTP协议的网络请求框架 https://imgconvert.csdnimg.cn/aHR0cDovL3VwbG9hZC1pbWFnZXMuamlhbnNodS5pby91cGxvYWRfaW1hZ2VzLzk0NDM2NS0yYmQ4MGIyMzRhZTlkMTU1LnBuZz9pbWFnZU1vZ3IyL2F1dG8tb3JpZW50L3N0cmlwJTdDaW1hZ2V

twenty_four_7的博客 1941

Retrofit详解:新手学习

这是我在学习Retrofit时为了理解写下来的,写的很详细,如果你是对Retrofit不了解,请一定从头到尾耐心地读下来。 我在遇到一个方法是,常常会一直深入下去,所以往往结果就是深入结束后都忘记从哪儿开始的了,所以请耐心地回头看看。 > 一.创建Retrofit Retrofit retrofit=new Retrofit.Builder() ...

qq_36999309的博客 1293

android 介绍Retrofit的简单使用

android 介绍Retrofit的简单使用

bitian123的博客 11万+
上一篇: 相对布局之RelativeLayout
下一篇: greenrobot.greendao
user_app
博客等级 码龄9年 7粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值