RxVolley

Project Url: kymjs/RxVolley
Introduction: RxVolley 是一个基于 Volley 的网络请求库;同时支持 RxJava;可以选择使用 OKHttp 替代默认的 HttpUrlConnection 做网络请求;可以选择使用图片加载功能(复用的网络请求将有效减少 apk 体积);移除了原 Volley 的 HttpClient 相关 API ,可在 API23 环境编译;内置了 RxBus 的实现,可有效替换掉 EventBus 等相关库;
More: Author   ReportBugs   DemoAPK   
Tags:
RxJava-Volley-网络请求-

RxVolley = Volley + RxAndroid3 + OkHttp3

中文帮助

Retrofit? No, I Love Volley.

RxVolley is modified Volley. Removed the HttpClient, and support RxJava.

If you are building with Gradle, simply add the following line to the dependencies section of your build.gradle file:

latest version numbers:

implementation 'com.github.kymjs.rxvolley:rxvolley:3.0.0'

// If use okhttp function
implementation 'com.github.kymjs.rxvolley:okhttp3:3.0.0'
//or okhttp2
implementation 'com.github.kymjs.rxvolley:okhttp:3.0.0'

// If use image-loader function
implementation 'com.github.kymjs.rxvolley:image:3.0.0'

Getting Started

Builder pattern to create objects.

Callback method do Get request and contenttype is form

HttpParams params = new HttpParams();

//http header, optional parameters
params.putHeaders("cookie", "your cookie");
params.putHeaders("User-Agent", "rxvolley"); 

//request parameters
params.put("name", "kymjs");
params.put("age", "18");

HttpCallback callBack = new HttpCallback(){
    @Override
    public void onSuccess(String t) {
    }
    @Override
    public void onFailure(int errorNo, String strMsg) {
    }
}

new RxVolley.Builder()
    .url("https://www.kymjs.com/rss.xml")
    .httpMethod(RxVolley.Method.GET) //default GET or POST/PUT/DELETE/HEAD/OPTIONS/TRACE/PATCH
    .cacheTime(6) //default: get 5min, post 0min
    .contentType(RxVolley.ContentType.FORM)//default FORM or JSON
    .params(params)
    .shouldCache(true) //default: get true, post false
    .callback(callBack)
    .encoding("UTF-8") //default
    .doTask();

Callback method do Post request and contenttype is json


String paramJson = "{\n" +
                "    \"name\": \"kymjs\", " +
                "    \"age\": \"18\" " +
                "}";

//request parameters, json format
HttpParams params = new HttpParams();
params.putJsonParams(paramJson);

// upload progress
ProgressListener listener = new ProgressListener(){
    @Override
    public void onProgress(long transferredBytes, long totalSize){
    }
}

new RxVolley.Builder()
    .url("https://www.kymjs.com/rss.xml")
    .httpMethod(RxVolley.Method.POST) //default GET or POST/PUT/DELETE/HEAD/OPTIONS/TRACE/PATCH
    .cacheTime(6) //default: get 5min, post 0min
    .params(params)
    .contentType(RxVolley.ContentType.JSON)
    .shouldCache(true) //default: get true, post false
    .progressListener(listener) //upload progress
    .callback(callback)
    .encoding("UTF-8") //default
    .doTask();

return Observable\ type

Observable<Result> observable = new RxVolley.Builder()
    .url("https://www.kymjs.com/rss.xml")
    .httpMethod(RxVolley.Method.POST) //default GET or POST/PUT/DELETE/HEAD/OPTIONS/TRACE/PATCH
    .cacheTime(6) //default: get 5min, post 0min
    .params(params)
    .contentType(RxVolley.ContentType.JSON)
    .getResult(); 

//do something
observable.subscribe(subscriber);

Requirements

RxVolley can be included in any Android application.

RxVolley supports Android 3.1, API12 (HONEYCOMB_MR1) and later.

License

Licensed under the Apache License Version 2.0. The "License"

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools