基于Volley的便捷网络请求库
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
demo Initial commit Jul 26, 2015
gradle/wrapper Initial commit Jul 26, 2015
requestvolley Initial commit Jul 26, 2015
.gitignore Initial commit Jul 26, 2015
README.md Update README.md Jul 27, 2015
build.gradle Initial commit Jul 26, 2015
gradle.properties Initial commit Jul 26, 2015
gradlew Initial commit Jul 26, 2015
gradlew.bat Initial commit Jul 26, 2015
log.png Initial commit Jul 26, 2015
settings.gradle Initial commit Jul 26, 2015

README.md

RequestVolley

基于volley的网络请求库

因为volley用起来比较麻烦。封装一下函数式调用更加方便。是基于某个库(= =,已找不到出处)修改的。
功能都集中在RequestManager里面

##依赖 compile 'com.jude:requestvolley:1.0.4'

在APP入口处调用
RequestManager.getInstance().init(this);
建议这样设置调试模式,所有的网络请求都将排上序号输出。调试模式神好用!!!
RequestManager.getInstance().setDebugMode(BuildConfig.DEBUG,"net");
log.png 调试模式会将所有PostGet请求参数与结果输出出来(Post会转成Get格式)。

##get/post简单调用 LoadController get(String url, RequestListener requestListener)
LoadController post(final String url, Object data, final RequestListener requestListener)
post第二个参数,将调用data.toString()来获取post数据。
提供RequestMap来供添加文本与文件作为表单。

    RequestMap params = new RequestMap();
    params.put("id","123");
    params.put("id","123");
    params.put("file",new File("xxx"));
    RequestManager.getInstance().post(url,params,callback);

可以重复添加相同key的文本。一次只能上传一个文件。
可以通过LoadController取消本次请求。

##图片请求 ImageLoader.ImageContainer img(final String url,final ImageView imageView)
ImageLoader.ImageContainer img(final String url,final ImageView imageView, final int resError)
ImageLoader.ImageContainer img(final String url,final ImageLoader.ImageListener imageListener)
很方便的图片请求,10M内存缓存与永久的文件缓存。将自动处理。
不过,都去用Fresco吧。这个比起来弱爆了。

##全局设置 void setHeader(HashMap<String,String> header)
void setCacheEnable(boolean isCache)
void setRetryTimes(int times)
void setTimeOut(int time)
注意默认是不开启缓存。避免缓存导致调试问题。这些为全局设置。get与post均允许发送特殊请求。

##缓存机制 对volley的缓存机制作了些修改,volley源码中这一部分本来也是这个意思,但不知道为什么并没有完成,阉割了?
根据响应头头的Cache-Control字段中。max-age=表示有效时间,soft-age=表示新鲜时间。
在新鲜时间之前。只会读取缓存。
在新鲜时间与有效时间之间。会先读取缓存再网络请求。会返回2次。
超过有效时间。直接网络请求。

另外貌似volley也支持https。也被阉割了。后期再试试完善https部分吧。

##解析 demo中的DataCallback负责解析。用法很优雅。实现在demo里,本来想放进库里,但与项目耦合太高。网络库也并不负责解析。

    RequestManager.getInstance().post("https://apiview.com/test/408/RequestVolley/getPerson", null, new DataCallback<Person>() {
                @Override
                public void success(String info, Person data) {
                    tvPerson.setText(data.getName()+":"+data.getAge());
                }
            });