美文网首页Android
记一次错误 :三方登录退出&H5交互无法调起&HTTP401错误

记一次错误 :三方登录退出&H5交互无法调起&HTTP401错误

作者: Merbng | 来源:发表于2019-12-10 19:00 被阅读0次

    场景①:

    登录qq1 ,退出登录,再切换qq2,登录后还是显示qq1的信息

    解决①:

    第三方登录, 退出app记得 调用 取消授权
    UMShareAPI.get(activity).doOauthVerify(mActivity,mPlatform, authListener);
    封装一下:

       /**
         * 友盟取消授权(退出登录调用)
         */
        public static void umengDeleteOauth(Activity activity, SHARE_MEDIA share_media_type) {
    
            UMShareAPI.get(activity).deleteOauth(activity, share_media_type, new UMAuthListener() {
                @Override
                public void onStart(SHARE_MEDIA share_media) {
                    //开始授权
                    KLog.e("onStart", "onStart: ");
                }
    
                @Override
                public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
                    //取消授权成功 i=1
                    KLog.e("onComplete", "onComplete: ");
                }
    
                @Override
                public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {
                    //授权出错
                    KLog.e("onError", "onError: ");
                }
    
                @Override
                public void onCancel(SHARE_MEDIA share_media, int i) {
                    //取消授权
                    KLog.e("onCancel", "onCancel: ");
                }
            });
        }
    
    

    场景②:

    跟h5交互时,点击没有掉起微信分享

    解决②:

    要分享的url含有汉字,客户端进行编码处理,传给h5的昵称为null,导致编码报错,无法调起。
    要编码的内容需要判空
    String nick = Uri.encode(Uri.encode(loginData.getNickName()));

    场景③:

    请求接口报401
    报错信息如下:

    retrofit2.adapter.rxjava2.HttpException: HTTP 401 
        at retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:54)
        at retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:37)
        at retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:44)
        at io.reactivex.Observable.subscribe(Observable.java:12090)
        at retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34)
        at io.reactivex.Observable.subscribe(Observable.java:12090)
        at io.reactivex.internal.operators.observable.ObservableSingleSingle.subscribeActual(ObservableSingleSingle.java:35)
        at io.reactivex.Single.subscribe(Single.java:3438)
        at io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
        at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578)
        at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
        at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
        at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:784)
    
    
    

    后台说不报错,网上都了一堆资料,大致意思是没有处理onerror
    后来抓取传参的body在postman跑了一下,也是401,但是有信息返回

    postman报错.jpg

    因为项目里配置了渠道打包,把那个渠道修改为后台已有的,接口请求成功。


    渠道配置.png

    参考链接:
    https://www.jianshu.com/p/c6c983a9f616
    https://blog.csdn.net/weixin_43296748/article/details/100577893

    相关文章

      网友评论

        本文标题:记一次错误 :三方登录退出&H5交互无法调起&HTTP401错误

        本文链接:https://www.haomeiwen.com/subject/jcoggctx.html