0
  • 最佳答案

    1、获取验证码(会返回验证码的 key,就是 l_c_i 的值)

    2、登录账号(在请求头的 header 中携带验证码的 key,请求后会有响应头,取到 sob_token)

    3、调用需要登录的接口的时候,请求头中携带上 sob_token

    1204736502274318336  评论     打赏       A lonely cat
    • 阿肥  回复 @A lonely cat
      哈哈哈哈我还有疑问 1.我通过Glide拦截的lci 但是验证失败了 2. 只需要添加在登录接口么 其他的api不用添加sob_token么
      阿肥 2022-01-04 15:51   回复 1382711465131241472
    • A lonely cat  回复 @阿肥
      不是 你理解错了 是只需要在登录接口传 l_c_i (这个是验证码的 key),其它的 api 如果需要登录状态的话,那就需要携带 sob_token ,不需要 lci 了
      A lonely cat 2022-01-04 16:03   回复 1204736502274318336
    • 阿肥  回复 @A lonely cat
      了解了 在登录那加lci 登录成功后 把sob_token 也加在登录的header 你用kt大概是怎么写的呢
      阿肥 2022-01-04 16:09   回复 1382711465131241472
    • A lonely cat  回复 @阿肥
      我项目的代码还没更新到 github (https://github.com/anjiemo/SunnyBeach)上呢,你可以看看我写的 Java 版本的 demo ,demo项目地址:https://gitee.com/anjiemo/sob-login-demo
      A lonely cat 2022-01-04 17:09   回复 1204736502274318336
    • 阿肥  回复 @A lonely cat
      ok 谢谢大佬
      阿肥 2022-01-04 17:12   回复 1382711465131241472
    • 阿肥  回复 @A lonely cat
      大佬 我发现用你的demo跑步起来 你是在idea写的 我把它挪过去as 如果不用kapt 导入Glide 它就捕获不到图片的lci 如果用了kapt 就报错 似乎你很多语法是java11的 这个kapt的问题我很纳闷 我同样Gradle版本的其他项目都是可以使用kapt 使用你的项目就会报
      阿肥 2022-01-05 14:17   回复 1382711465131241472
    • 阿肥  回复 @A lonely cat
      > A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution > java.lang.reflect.InvocationTargetException (no error message) 太离奇了
      阿肥 2022-01-05 14:18   回复 1382711465131241472
    • A lonely cat  回复 @阿肥
      我不是用的IDEA写的啊,我也是用的AS。你说的报错是 SunnyBeach 这个吧 sob-login-demo 这个 demo 是没有使用 kotlin 的
      A lonely cat 2022-01-05 14:30   回复 1204736502274318336
    • A lonely cat  回复 @阿肥
      这个报错是 SunnyBeach 这个项目吧
      A lonely cat 2022-01-05 14:31   回复 1204736502274318336
    • 阿肥  回复 @A lonely cat
      也是as么 那么离奇 你是白狐版的么 sob-login-demo这个我在as 4.1.3打不开 看着像idea写的 我再去沙箱用白狐打开看看
      阿肥 2022-01-05 14:32   回复 1382711465131241472
    • A lonely cat  回复 @阿肥
      嗯呐
      A lonely cat 2022-01-05 14:43   回复 1204736502274318336
    • 阿肥  回复 @A lonely cat
      发现问题了 Gradle版本要7.0.2 java11 我这边还是java8 难搞
      阿肥 2022-01-05 14:52   回复 1382711465131241472
    • A lonely cat  回复 @阿肥
      你试着把 Gradle 的版本改低一点试试
      A lonely cat 2022-01-05 15:14   回复 1204736502274318336
    • 阿肥  回复 @A lonely cat
      可以了 我研读一下 然后写个demo再去替换自己的 谢谢大佬啦
      阿肥 2022-01-05 15:54   回复 1382711465131241472
    • 阿肥  回复 @A lonely cat
      大佬 你这边的logout会操作失败 查询就正常
      阿肥 2022-01-05 16:18   回复 1382711465131241472
    • A lonely cat  回复 @阿肥
      因为之前我是把本地的 token 先删除了再去调用的 logout 接口。这个属于我写的bug,修改后的代码还没更新到 gitee 上
      A lonely cat 2022-01-05 16:52   回复 1204736502274318336
    • 阿肥  回复 @A lonely cat
      ok哦 我用了土办法+header 我现在来仿造写拦截器 感谢大佬输出!
      阿肥 2022-01-05 17:04   回复 1382711465131241472
    • A lonely cat  回复 @阿肥
      你同步一下代码吧 那部分bug我改好了
      A lonely cat 2022-01-05 17:07   回复 1204736502274318336
    • 阿肥  回复 @A lonely cat
      大佬 终于知道为啥我之前的拦截器总是失败了 我的response.body.string 已经消耗了response了 它自己去close了 后面的操作就会停止了 仿造你的写法获取到body的string了 十分感谢哈哈哈哈 这是网上找的问题答案“原因为OkHttp请求回调中response.body().string()只能有效调用一次”
      阿肥 2022-01-13 11:42   回复 1382711465131241472
    • A lonely cat  回复 @阿肥
      这怎么说 《OkHttp中ResponseBody无法第二次调用string方法》https://www.sunofbeach.net/a/1480458089017671681
      A lonely cat 2022-01-13 11:47   回复 1204736502274318336
    • 阿肥  回复 @A lonely cat
      确实如同你分析的哈哈哈 就是不给使用两次 学到了学到了
      阿肥 2022-01-13 11:55   回复 1382711465131241472
  • 看断点的代码吧,他有写demo的。就一个点,在resquest上的header上要携带,监听response的header有就更新。图片的话就看你获取到的是啥,提交时的是啥,另外就是你验证码真的对了,哈哈。

    1153952789488054272  评论     打赏       拉大锯
    • 阿肥  回复 @拉大锯
      我在好奇 我在拦截器这里获取到了lci嘛 然后用它去验证 在login设置了header 但是经常会遇到失败的情况 我不用拦截器在日志内拿lci 去登录 就一切正常 对了康师傅 新的api登录不用cookie了对么
      阿肥 2022-01-04 15:49   回复 1382711465131241472
    • A lonely cat  回复 @阿肥
      新的 api 不用传 cookie 了,传 sob_token
      A lonely cat 2022-01-04 16:04   回复 1204736502274318336
    • 阿肥  回复 @A lonely cat
      okok
      阿肥 2022-01-04 16:10   回复 1382711465131241472
    • 断点-含光君  回复 @拉大锯
      我的新登录demo还没有发布,先让同学们飞一会儿
      断点-含光君 2022-01-04 17:07   回复 1139423796017500160
    • A lonely cat  回复 @拉大锯
      可是 他的 demo 代码好像没有更新哎,还是之前的代码 这是我写的最新的阳光沙滩登录 demo :https://gitee.com/anjiemo/sob-login-demo
      A lonely cat 2022-01-04 17:08   回复 1204736502274318336
    • 阿肥  回复 @断点-含光君
      是不是拦截器这里算自动请求一次呀 然后后面我url请求其实已经算是第二次了
      阿肥 2022-01-04 17:13   回复 1382711465131241472
    • 断点-含光君  回复 @阿肥
      拦截器不是请求一次,拦截器是类似hook功能,在请求的过程中,某个节点中,你插入一个管子,如果你什么都不做,就是等于看了一眼,放走了,我们的需求就是,在响应,或者请求的时候,拿到数据,做事情,比如请求的时候加token,响应的时候,取lci等等。先理清楚概念,用途。
      断点-含光君 2022-01-04 17:22   回复 1139423796017500160
相关问题
2023-11-21 15:11 13 2
陈钱罐16 · 领券联盟
2023-11-11 18:09 23 8
哈哈android · AOSP
2023-11-10 15:52 13 12
2023-11-10 00:26 22 10
zhanghengze · Android
2023-10-26 21:52 22 8