学习 博客 http://blog.csdn.net/r17171709/article/details/51149350

@Query 后面跟要添加的字段

@Path 连接url里面{userId}  @Path("userId") String userId

RxJava2 浅析

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2016/0907/6604.html

RxJava2+Retrofit2网络框架封装

http://blog.csdn.net/gesanri/article/details/52701651

Log打印参数封装类

http://www.jianshu.com/p/2b0aeb6b6b61/

public static Retrofit create() {
OkHttpClient.Builder builder = new OkHttpClient().newBuilder();
builder.readTimeout(10, TimeUnit.SECONDS);
builder.connectTimeout(9, TimeUnit.SECONDS);
/**添加log注释**/
if (BuildConfig.DEBUG) {
      /***这里默认使用Log Debug模式打印**/
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
builder.addInterceptor(interceptor);
builder.addNetworkInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.HEADERS));
builder.addNetworkInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BASIC));
} return new Retrofit.Builder().baseUrl(SERVER_URL)
.client(builder.build())
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
}

Retrofit网络安全的了解:
http://www.jianshu.com/p/16994e49e2f6

学习Https ssl证书,如何生成自签名的证书。
http://blog.csdn.net/u013424496/article/details/51161647

HTTPS 和 SSL 确保安全
https://developer.android.google.cn/training/articles/security-ssl.html

Retrofit2实现访问Https
http://blog.csdn.net/PengFFF/article/details/70682494

http://www.jianshu.com/p/16994e49e2f6

RxBus

http://www.jianshu.com/p/7f4a709d2be5

http://reactivex.io/RxJava/2.x/javadoc/io/reactivex/subjects/PublishSubject.html

io.reactivex.subjects

Class PublishSubject<T>

  • Type Parameters:
    T - the type of items observed and emitted by the Subject
    All Implemented Interfaces:
    ObservableSource<T>, Observer<T>
    PublishSubject<Object> subject = PublishSubject.create();
    // observer1 will receive all onNext and onComplete events
    subject.subscribe(observer1);
    subject.onNext("one");
    subject.onNext("two");
    // observer2 will only receive "three" and onComplete
    subject.subscribe(observer2);
    subject.onNext("three");
    subject.onComplete();

    http://reactivex.io/RxJava/2.x/javadoc/io/reactivex/subjects/BehaviorSubject.html

    io.reactivex.subjects

    Class BehaviorSubject<T>

    • Type Parameters:
      T - the type of item expected to be observed by the Subject
      All Implemented Interfaces:
      ObservableSource<T>, Observer<T>
      Example usage:
      
       // observer will receive all 4 events (including "default").
      BehaviorSubject<Object> subject = BehaviorSubject.createDefault("default");
      subject.subscribe(observer);
      subject.onNext("one");
      subject.onNext("two");
      subject.onNext("three"); // observer will receive the "one", "two" and "three" events, but not "zero"
      BehaviorSubject<Object> subject = BehaviorSubject.create();
      subject.onNext("zero");
      subject.onNext("one");
      subject.subscribe(observer);
      subject.onNext("two");
      subject.onNext("three"); // observer will receive only onComplete
      BehaviorSubject<Object> subject = BehaviorSubject.create();
      subject.onNext("zero");
      subject.onNext("one");
      subject.onComplete();
      subject.subscribe(observer); // observer will receive only onError
      BehaviorSubject<Object> subject = BehaviorSubject.create();
      subject.onNext("zero");
      subject.onNext("one");
      subject.onError(new RuntimeException("error"));
      subject.subscribe(observer);

http://reactivex.io/RxJava/2.x/javadoc/io/reactivex/subjects/ReplaySubject.html

io.reactivex.subjects

Class ReplaySubject<T>

  • Type Parameters:
    T - the value type
    All Implemented Interfaces:
    ObservableSource<T>, Observer<T>
     ReplaySubject<Object> subject = new ReplaySubject<>();
    subject.onNext("one");
    subject.onNext("two");
    subject.onNext("three");
    subject.onComplete(); // both of the following will get the onNext/onComplete calls from above
    subject.subscribe(observer1);
    subject.subscribe(observer2);

Retrofit2+Rxjava2 okhttp RxBus 使用记录的更多相关文章

  1. Retrofit2+Rxjava+OkHttp的使用和网络请求

    Retrofit2+Rxjava+OkHttp的使用和网络请求 https://blog.csdn.net/huandroid/article/details/79883895 加入Rxjava 如果 ...

  2. Android 从零开始搭建一个主流项目框架—RxJava2.0+Retrofit2.0+OkHttp

    我这里的网络请求是用的装饰者模式去写的,什么是装饰者模式呢?在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能.它是通过创建一个包装对象,也就是装饰来包裹真实的对象.我的理解就是一个接口, ...

  3. 使用Retrofit2+RxJava2+ProtoBuf实现网络请求

    引言 Retrofit 是一个用于 Android 和 Java 平台的类型安全的,底层使用OkHttp实现网络请求框架.Retrofit 通过将 API 抽象成 Java 接口而让我们连接到 RES ...

  4. Retrofit2.0+OkHttp设置统一的请求头(request headers)

    有时候要求Retrofit2的接口中每个都要增加上headers,又不想做重复的事情,可以使用这种方法来为每个request请求都设置上相同的请求头header. 修改请求头request heade ...

  5. Retrofit2+Rxjava2的用法

    近几年,Retrofit犹如燎原之火搬席卷了整个Android界.要是不懂Retrofit,简直不好意思出门... 由于近几个项目都没用到Retrofit,无奈只能业余时间自己撸一下,写的不好的地方, ...

  6. 浅谈Retrofit2+Rxjava2

    近几年,Retrofit犹如燎原之火搬席卷了整个Android界.要是不懂Retrofit,简直不好意思出门...由于近几个项目都没用到Retrofit,无奈只能业余时间自己撸一下,写的不好的地方,还 ...

  7. MVP实战心得—封装Retrofit2.0+RxAndroid+RxBus

    响应式编程框架,rxjava的扩展,很爽的链式编程 魅力在于对数据的处理,与线程切换的灵活性. 用来处理异步操作(Lambda表达式不会用.用Lambda表达式代码会更少,但不会的人会看不懂代码.不是 ...

  8. Retrofit2.0+OkHttp打印Request URL(请求地址参数)

    学习了Retrofit中的拦截器功能:实现日志中打印请求头内容 Retrofit 2+ 是基于OKHttp进行封装的,那么也就是说想进行请求拦截然后进行打印出来的话,就必须要从OkHttp进行入手. ...

  9. retrofit2+rxjava+okhttp网络请求实现

    第一步:添加依赖: compile 'io.reactivex:rxandroid:1.2.0' compile 'com.squareup.retrofit2:adapter-rxjava:2.1. ...

随机推荐

  1. Flask请求处理流程(request)[待续]

    WSGI简介 WSGI(全称Web Server Gateway Interface),是为 Python 语言定义的Web服务器和Web应用程序之间的一种简单而通用的接口,它封装了接受HTTP请求. ...

  2. 关于String str =new String("abc")和 String str = "abc"的比较--转

    原文地址:https://www.cnblogs.com/OnlyCT/p/5433410.html String是一个非常常用的类,应该深入的去了解String 如: String str =new ...

  3. 【费马小定理+快速幂取模】ACM-ICPC 2018 焦作赛区网络预赛 G. Give Candies

    G. Give Candies There are N children in kindergarten. Miss Li bought them N candies. To make the pro ...

  4. 利用ubuntu的alias命令来简化许多复杂难打的命令

    利用alias,可以将你要长期执行的命令,用一个你最喜欢的名字记下来, 用你最喜欢的编辑器打开.bashrc文件( 如$  vim ~/.bashrc) 在最后面输入: alias myssh='ss ...

  5. Linux中make, make install命令分别是什么

    用于linux源码安装软件,一般下载源码包得到文件:xxxx.tgz====================================1.解包软件 tar zxf xxxx.tgz======= ...

  6. ASP.NET基于Redis的Provider库

    因为session基于本地cache,以前我们自己写分布式缓存,或者数据库存储,或者cookie加密存储,来保存用户状态信息,但较少的直接通过创建一个继承 SessionStateStoreProvi ...

  7. python3 string

    字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可.例如: var1 = 'Hello World!' var2 ...

  8. Linux--多网卡的7种Bond模式和交换机配置

    网卡bond是通过把多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡.在应用部署中是一种常用的技术,我们公司基本所有的项目相关服务器都做了bond,这里总结整理,以便待查. bond ...

  9. VS2015+Opencv半永久配置

    电脑W7 64位+VS2015+opencv3.0 刚开始学习opeencv很麻烦,配置的问题都弄了好久,一旦重装又出现很多问题,在网上看了一个论坛说的永久配置,特意记录一下! 第一步:下载openc ...

  10. 20165233 2017-2018-2 《Java程序设计》第九周学习总结

    20165233 2017-2018-2 <Java程序设计>第九周学习总结 教材学习内容总结 基础 - URL类:java.net包中的URL类是对统一资源定位符的抽象,使用URL创建对 ...