jeasonlzy / okhttp-OkGo

OkGo - 3.0 震撼来袭,该库是基于 Http 协议,封装了 OkHttp 的网络请求框架,比 Retrofit 更简单易用,支持 RxJava,RxJava2,支持自定义缓存,支持批量断点下载管理和批量上传管理功能
Apache License 2.0
10.59k stars 2.55k forks source link

如果url不正确,只调用了onerror方法, onfinish没有回调 #744

Open Freedomhxb opened 6 years ago

Freedomhxb commented 6 years ago

调用栈如下: 07-05 09:22:32.292 31467-31467/com.hxb.mes W/System.err: java.lang.IllegalArgumentException: unexpected url: http://:8099/web/mds_item/list.do at okhttp3.Request$Builder.url(Request.java:143) at com.lzy.okgo.request.PostRequest.generateRequest(PostRequest.java:47) at com.lzy.okgo.request.base.Request.getRawCall(Request.java:346) at com.lzy.okgo.cache.policy.BaseCachePolicy.prepareRawCall(BaseCachePolicy.java:95) at com.lzy.okgo.cache.policy.NoCachePolicy$3.run(NoCachePolicy.java:79) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

okgo com.lzy.okgo.cache.policy.NoCachePolicy#requestAsync 源码如下:

  public void run() {
            mCallback.onStart(request);
            try {
                prepareRawCall();
            } catch (Throwable throwable) {
                Response<T> error = Response.error(false, rawCall, null, throwable);
                mCallback.onError(error); 
                return;
            }
            requestNetworkAsync();
        }

看上面的源码,在发生异常的时候直接return了. 没有回调onfinish

DingMr commented 3 months ago

+1