wzgiceman / rxjavaretrofitdemo-master Goto Github PK
View Code? Open in Web Editor NEWRetrofit+Rxjava+okhttp终极封装(Gson方案)
Home Page: http://blog.csdn.net/column/details/13297.html
License: MIT License
Retrofit+Rxjava+okhttp终极封装(Gson方案)
Home Page: http://blog.csdn.net/column/details/13297.html
License: MIT License
每个接口都要一个回调 这样 是不是 很繁琐 ? 如果我同时请求多个 接口 不快疯掉了
滚动列表时如果进度状态发生改变,有时会卡顿。 点击下载按钮后,滑动有时也会卡顿
如题,如果下载到50%,删除本地文件,你的数据库记录就有问题了.
网络请求经常会遇到这个问题,还有这个库不是单例的。目前也不支持https。
话说这个库还维护吗? 这些重大bug还修复吗?
Error:(36, 9) 错误: 找不到符号
符号: 方法 setMothed(String)
位置: 类 SubjectPostApi
Error:(27, 9) 错误: 找不到符号
符号: 方法 setMothed(String)
位置: 类 UploadApi
ProgressDownSubscriber中,update方法内部,切换线程用了post new Runnable的方式,导致短时间内开始创建大量的Runnable对象,内存暴涨
和好多别的demo不能兼容,我菜的一笔,改不动啊,希望楼总大神能升级下
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
SubjectPostApi postEntity = new SubjectPostApi(simpleOnNextListener, (RxAppCompatActivity) getActivity());
}
如果有两个请求 而且setCach 都设置为true , 在第一个请求完成后,在进行第二个请求, 第二个请求则会出错
报错如下
02-15 18:00:10.350 11646-14550/? D/OkHttp: <-- HTTP FAILED: android.database.sqlite.SQLiteConstraintException: UNIQUE constraint failed: COOKIE_RESULTE._id (code 1555)
02-15 18:00:10.350 11646-14550/? D/OkHttp: #################################################################
02-15 18:00:10.350 11646-14550/? D/OkHttp: Error Code : 1555 (SQLITE_CONSTRAINT_PRIMARYKEY)
02-15 18:00:10.350 11646-14550/? D/OkHttp: Caused By : Abort due to constraint violation.
02-15 18:00:10.350 11646-14550/? D/OkHttp: (UNIQUE constraint failed: COOKIE_RESULTE._id (code 1555))
02-15 18:00:10.350 11646-14550/? D/OkHttp: #################################################################
我发现如果业务复杂了,用作者的框架会不是很好,试着结合MVP框架,发现不太好改,作者有打算把该框架改成MVP结构,或者有什么建议么?
文字错误,改一下避免对读者造成不必要的困扰~
大神,我没有找到DaoMaster这个数据库操作类啊,请指点下
缺少了DaoMaster,DaoSession,CookieResulteDao等类
A connection to https://www.gstatic.com/ was leaked. Did you forget to close a response body?
5 java.lang.OutOfMemoryError:Failed to allocate a 115707072 byte allocation with 25165824 free bytes and 85MB until OOM, max allowed footprint 203981032, growth limit 268435456
6 java.lang.StringFactory.newStringFromBytes(StringFactory.java:178)
7 java.lang.StringFactory.newStringFromBytes(StringFactory.java:209)
8 okio.Buffer.readString(Buffer.java:616)
9 okio.Buffer.readString(Buffer.java:599)
10 okhttp3.logging.HttpLoggingInterceptor.intercept(HttpLoggingInterceptor.java:195)
11 okhttp3.RealCall$ApplicationInterceptorChain.proceed(RealCall.java:190)
12 com.wzgiceman.rxretrofitlibrary.retrofit_rx.http.cookie.CookieInterceptor.intercept(CookieInterceptor.java:36)
13 okhttp3.RealCall$ApplicationInterceptorChain.proceed(RealCall.java:190)
14 okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:163)
15 okhttp3.RealCall.execute(RealCall.java:57)
CookieDbUtil类创建单例时:
synchronized (HttpDownManager.class)
是不是应该改成
synchronized (CookieDbUtil.class)
不同的接口,是不是都得继承BaseApi单独写个啊~然后才是请求三部曲
在HttpDownManager的108行,AppUtil.writeCache(responseBody,new File(info.getSavePath()),info);进行了下载读写操作,此处的responseBody.byteStream()为一个输入流,在writeCache方法中进行while循环读
点击按钮暂停时在pause方法中调用了subscriber.unsubscribe();
我的疑问是如果writeCache中正在进行while读,调用unsubscribe是如何中断下载的?望给予指导,谢谢
点击多任务断点续传下载,在新的页面里面点击下载,提示:失败:retorfit2.adapter.rxjava.HttpException:HTTP404 Not Found。
这个怎么处理哈~
请问一下怎么用cookie保存登录状态啊
downlaod 应该是download,希望能修改下
demo中没看到如何取消请求任务的代码, 如果在登录界面点击登录,然后我按返回键,如何取消登录请求任务?
Thanks for sharing the author found a problem when I tried it, and find the reasonAnd you said hereGreendao database problem into the first data no problem to insert the second report abnormal dataAndroid. Database. Sqlite. SQLiteConstraintException: PRIMARY KEY must be unique (code 19) see this exception I think is a problem of the PRIMARY KEY.And when I tried it is not, so I found type is not corresponding to check the source code.So he changed the CookieResulte id type from long to Long after see the source is a non-empty judgment judge normal should set id for self growth
thanks
CookieDbUtil下的CookieResulteDao没看到
应该写成单例的,多BaseApi也是可以实现的
public void doHttpDeal(BaseApi basePar) {
/链接式对象返回/
SoftReference httpOnNextListener = basePar.getListener();
if (httpOnNextListener != null && httpOnNextListener.get() != null) {
httpOnNextListener.get().onNext(observable);
}
/*数据回调*/
observable.subscribe(subscriber);
}
每次的网络请求都会产生一次订阅关系,如何才能使接口回调回来后,取消本次订阅?
我们请求参数都是用jsonRequest,这样就要用到RequestBody ,不同模块不同的service,这样没办法把请求参数写在baseApi里...如果要用你的框架封装,有什么思路可以指导的吗?谢谢
如题,6.0系统 或者6.0以上,下载完全后,
progressListener.update 回调返回 done 为true,然后调代码进行安装应用,报错解析包错误。
或者,下载完成后,手动到sd卡,点击下载的apk进行安装,也是解析包错误。
下载完成,等待个10秒左右,手动或者代码 安装,却又能正常进行安装了。
同时发起多个请求,方法名无法判断,方法名总是最后一个请求的方法名,这个怎么解决呢?
@OverRide
public void onCancelProgress() {
if (!this.isUnsubscribed()) {
this.unsubscribe();
}
Logger.e(TAG+"onCancelProgress");
}
下载器 :正在下载的任务返回到上层, 再进去 进度条又从0开始 而实际上 后台还在继续下载过程中
ProgressSubscriber类中ProgressDialog取消监听中是否需要增加回调,这样在监听中就可以监听到取消事件
private void initProgressDialog(boolean cancel) {
Context context = mActivity.get();
if (pd == null && context != null) {
pd = new ProgressDialog(context);
pd.setCancelable(cancel);
if (cancel) {
pd.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialogInterface) {
if (mSubscriberOnNextListener.get() != null) {
mSubscriberOnNextListener.get().onCancel();
}
onCancleProgress();
}
});
}
}
}
HttpOnNext回调,有时候为空,应该不是内存不足的问题,不知道什么原因
CookieDbUtil类中的
synchronized (HttpDownManager.class)
是不是应该该成
synchronized (CookieDbUtil.class)
建议提交到**仓库方便使用
CookieResulteDao找不到
自己的问题。。。。。解决了
我的SDK版本是23(原谅我,并没有升到最新版本)。这边的版本依赖都是用+号来获取最新的,然后出现各种SDK25..0.0的,说真的,为了一个DEMO更新SDK太麻烦了。然后还得花时间找各种依赖库的版本号,一个+号,根本找不到版本号具体是什么,找的了版本号,运行起来还是错误。希望能把版本号确定一个比较好。
真实项目开发中版本号一定要固定,不然因为依赖库的更新导致某种不可预估的问题就坑爹了,碰到好几次这种问题了
到处是bug
Process: com.example.retrofit, PID: 25643
java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.
at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:59)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
Caused by: java.lang.NoClassDefFoundError: okhttp3.internal.http.HttpEngine
at okhttp3.logging.HttpLoggingInterceptor.intercept(HttpLoggingInterceptor.java:219)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
at com.wzgiceman.rxretrofitlibrary.retrofit_rx.http.cookie.CookieInterceptor.intercept(CookieInterceptor.java:36)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:179)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.