Android注册时总是出现"验证码不正确"问题的解决

不诗意的女程序猿不是好厨师~

【转载请注明出处:From 李诗雨—http://blog.csdn.net/cjm2484836553/article/details/77341779

 注册时总是出现“验证码不正确”,本来以为这个问题没什么意义,但是今天在群里看到一个同学也遇到了这个问题,并且折腾好久,于是便立马打开电脑,觉得还是应该把这个问题记录一下。


【问题描述】:

  后台给了两个接口:获取短信验证码后----------->进行注册(注册需要用户名,密码和手机验证码)

  这本是个再简单不过的工作了,于是二话不说开始撸代码,分分钟搞定。

  可是诡异的事情发生了总是“验证码不正确”,看了后台打的Log日志也确实是“验证码”不正确,这还不算什么,关键让

  我觉得蹊跷的是,如果直接用浏览器去请求第一个获取验证码的接口,紧接着再却请求注册接口,浏览器返回的数

  数据确实“注册成功”!!!我的第一反应是这不可能!但是以防一,本姑凉还是谦虚地检查了一下那少得可怜的几行

  代码,并再次对了下接口确定数据没有传错。恩,确实确实没有问题!!!我有点方了,难道是我在做梦,这几行

  小代码居然拦住了姐,说出去还怎么在it界混了,于是我很无耻的求助了我爸,他很是不屑,说不能出现这种情况,

  但是最终他还是不情愿的帮我试了一下,同样出现了诡异的结果,他开始gg了。

  但是,他发现了一点蛛丝马迹:

 

  他问我,“这个sessionId不用当做参数传给注册接口吗?”。

  我重新审查了接口文档后,很自信的说“不用!”

  “确定?”

  “确定以及肯定。”

  然后我又发挥我的个人魅力让ios的小伙伴试了下这俩接口。

  结果他却“注册成功了”!!!晴天霹雳呐!!!

  我把这个消息又告诉了粑粑“ios那边是没问题”。

  好吧如此看来,就是我们安卓有问题了。

 于是粑粑便开始各种尝试,post请求不行,用get试试,还不行把retrofit请求改为okhttputils,还是不行,

  最后他连排列组合都用上了,还是不行。

  然后,粑粑就抛弃了我,继续去撸他自己的代码了。。。

 

  姐姐我怎么可能这么容易放弃,但是这个接口还是其他公司写的,没联系上写这个接口的后台,于是姐就随便揪了

  一个本公司的后台,令我感到奇怪的是,他同样询问了我“sessionId”,这不得不让我有所思考了。于是

 我就问他能不能从“sessionId”下手,然后来顺藤摸瓜,找出元凶。他也是想了有一会,突然他打了个响指,又朝我抛

 了个媚眼“你先用一个浏览器去调那个验证码接口,接着用另一个不同的浏览器再去调注册接口,看看什么情况”。结

 果是浏览器这次也“验证码错误了”。我的脸更方了。他却自信的说“我知道原因了。”你在调用登录接口时,在头里面

 获得的sessionId 传个'JSESSIONID',*********”,于是我加了一行代码:

  .addHeader("Cookie", "JSESSIONID=" + jsessionid);

 再次运行程序,居然“注册成功了”!


 接下来,你们可能想到了,后台的小伙伴,给我讲了半天的为什么。说了很多很多,都是关于后台的Session机制的

 这里我就不细说了,想了解的欢迎戳链接:http://www.cnblogs.com/evenma/p/4930949.html进行查看


 【解决办法】以OkHtttpUtils为例:

                                          
 OkHttpUtils.post()
                .url(ServerConfig.REMOTE_BASE_URL + ServerConfig.REGISTER_URL)
                .addHeader("Cookie", "JSESSIONID=" + ssionId)
                .addParams("account", account)
                .addParams("phoneCode", phoneCode)
                .addParams("password", password)
                .build()
                .execute(new StringCallback() {



  【结局】

   注册成功,嘲笑粑粑~

 

  怎么样,程序猿的世界是不是也挺精彩的~




         

 




猜你喜欢

转载自blog.csdn.net/cjm2484836553/article/details/77341779