00:00
接下来呢,我们来看一下这个错误结果的处理,那么好,现在呢,我们这面呢,已经拿到了一个结果了,这个结果呢,我们打算把它放在一个字符串里啊这样。好,我们就把它放在这个data串,所以这个呢,就是获取响应结果,好拿到这个响应结果之后呢,我们已经知道了它的响应结果的数据格式呢,就长这个样子对吧?那所以呢,我们就从这个里面呢,把相应的内容给它取出来,当然第一个步骤呢,我们应该。嗯,把这个结果呢,由Jason字符串转换成一个map集合,所以呢,我们就jason.from Jason,然后呢,把贝塔传进去,我们呢,希望他能够被。
01:00
变成一个哈map哈哈map.class然后这面呢,我们就是有一个map,然后接下来呢,我们从result map当中get出code来。这扣的呢,大家要注意大小写啊,它这个手写字母呢,是大写的,所以能盖出这个扣的来啊,然后呢,我们把这个存到一个扣的字符串当中,Result map啊,我们会发现呢,它返回的这几个值呢,其实都是字符串类型的,你看你看都是字符串类型的,如果都是字符串类型的话呢,我们给它做转换的时候呢,实际上就可以直接给它转换成字符串了,这样会更方便一些啊,如果直接转换成字符串了的话,那这边我们就直接定义成鸡串就可以了。嗯,然后接下来呢,我们在造成map.get啊,我们把这个再拿到。就是好。
02:03
Message啊好,然后接下来呢,我们就可以去啊,通过判断这个code的,这code的如果不等于OK的话,那么它就是一个错误,它如果是错误的话,我们就可以把这个错误给它展示出来,嗯,所以呢,嗯,我们可以看一下,在我们的这个地方呢,我们判断一下啊,就是如果code不等于OKAER点二有一个叫equals的,我们判断一下它是不是OK这个扣子,这扣的如果不等于OK呢,我们就对responses DR,阿里云SMSL好,在这个地方是不是直接就抛异常了,在这个地方直接就抛异常,抛异常给前端就会有一个错误的结果,这样的话我们就不会啊,这个碰到错误信息的时候呢,走到这儿给前端成功结果了,一旦碰到错误信息到这儿就直接抛异常出去了啊好,所以这块呢,是对错误信息。
03:03
的一个处理,然后接下来呢,我们还可以在这地方assert.not equals啊还判断一个什么呢,判断一个就是因为这块呢是对,只要是错了,不是OK,我们就跑异常,那么其实刚才我们得到的一个异常信息呢,是这个。是这个是吧,就是这个code等于isv business limit control,假设说你想针对这样的一个错误信息进行一个特殊的一个提示的话,那么我们呢,可以在啊前面先事先的对个性化的错误信息进行特殊的提示,所以呢,呃,刚才这个信息呢,就是一个普通的短信发送失败,我们呢,还可以给它提示一个短信发送过于频繁,那所以这面呢,我们可以判断它not equal啊,当cold不等于它的时候。那么呢,我们就response en点阿里云SMS limit control error啊叫做短信发送过于频繁,这个呢,就是触发了分钟级流控了,相当于好,这是呃,两个错误的判断。
04:20
然后接下来呢,嗯,我们还可以在这个地方哈,就是得到另外的一个结果,这个结果是这样的。嗯,从。我看一下啊,从response里面,从response里面呢,我们还可以拿到一个叫做get。Http response,然后点get。嗯,叫做is,我看一下是不是啊,Response。response.get http response,然后点is success是这个。
05:04
啊,然后呢,他会得到一个这样的一个结果,这个结果是什么?这个结果就是还没等到真正的阿里云那边处理业务的时候,比如说什么叫做真正的阿里云处理业务,就是已经连接到远程的阿里云了啊,但是呢,由于业务处理的过程当中出现了一个问题啊,然后呢,就返回失败了,例如余额不足对吧,例如手机号不正确,例如像这个触发分钟机流扣这个呢,都是我们的客户端对象已经成功的连接到阿里云,然后但是在处理业务的时候出现了一些业务失败啊,所以这面呢叫业务失败的处理好,然后一旦response.get HT response is success,它返回的值是false的话,就说明什么就是都没连上。啊,阿里云那边的远程连接呢,没有连上,这个呢,其实叫做通信失败的,就是跟前面我们之前前端调用后端啊,人家上传的时候不是也有两种嘛,一个是通信失败对吧,连都没连上,还有的呢是业务失败啊,连上了,但是处理失败了啊,所以这块呢,我们也给它啊进行一个处理,叫做通信失败的处理。
06:22
然后这面呢,我们来判断一下aer.is true啊,这个success是true的时候呢,我们说通信成功,否则的话呢,我们说通信失败,所以这边呢,就是阿里云,然后这边呢,我们可以写一个阿里云,呃,我们写一个叫做。Response吧,就是response response I型啊都一样,然后接下来呢,我们把它生成一下,生成一下的话呢,我们把这个嗯。
07:01
嗯,不会弹啊。选一个。应该是这个,对啊,应该是这个,然后这样的话呢,我们把它补充到这,因为这块正好少个五一,我们把这个501补充到这。的阿里云响应失败,好,然后这块补个分号,好这块呢,就是我们写的啊这样的一个提示信息,然后我们在这个地方呢,给它做一个提示,所以在这个地方我们再捋一下它整个的一个流程,呃,首先呢,就是创建客户端对象对吧,然后呃,补充参数,然后转这个Json数据,把参数给它完善,然后接下来呢,就发送这个请求,发送完请求之后呢。实际上我们从这个response这块可以先得到一个结果,就是这个啊,我们给阿里云发送的这个请求,他这个响应到底成不成功,如果直接响应没成功的话,那我们直接就做通信失败的处理了,如果响应成功了,我们再去拿响应结果,就响应结果拿到的前提是响应是成功的啊,响应成功了再拿响应结果,响应结果拿到了之后呢,我们再对这个业务失败进行一个处理,那业务失败呢,通常情况下我们就处理不是OK的情况就行了,那如果我们想对非OK的某一种情况做特殊的处理的话呢,我们在前面在这样去单独的处理一下,那当然了,你也可以在日志当中去详细的打印一下我们的这个阿里云的一个返回结果啊,log.in这个code的message都是它的返回结果,所以code这样的话有助于我们调试,这块是可选的哈,就是根据你实际的需要打印就行。
08:54
好,然后所以整个这块的业务呢,我们就写好了,写好了之后我们再重新启动一下这个。
09:19
好,这个服务呢,我们也已经创建成功了啊,这个启动成功了,启动成功了之后呢,我们再来测试一下,那么还是刚才的这个例子哈,我们直接刷新吧。嗯,刷新完了之后呢,在这面我们还是try it out。然后呢,我们点击这个。好,短信发送成功,再点一下。好,短信发送过于频繁,这样的话呢,这个业务限流的处理实际上我们已经处理成功了,那么这个是只是针对业务限流的这个错误给大家做了一个测试哈,你看后台也打印了这样的一个短信发送过于频繁啊,触发分钟及流控的这样的一个错误日志啊,好,那么其他的这个情况呢,比如说其他的错误的情况,还有这个,嗯。
10:14
大家可以课下的时候自己去啊,制造不同的场景是吧,自己去测一下啊,然后接下来呢,我们再来看一下controller这一端,Controller这一端呢,实际上我们呢,已经去做red的存储了,所以这个时候呢,我们可以上red当中呢去看一下,那么在red当中呢,确实是有一个验证码呢,已经被存入到这个位置了,并且呢,它是有这个过期时间的啊好,这块呢,就是我们整个短信发送微服务的一个创建,那当然了,这个短信发送微服务我们先给它创建出来,创建出来在后面我们真正去写前台网站的时候啊,我们再去调用它,再在前端去整合它,那目前为止我们写的是接口,那前端什么时候整合呢?前端的需要我们先去做这个网站是吧,所以后面呢,我们会还会学一个啊前端的一个技术啊,把这个网站先给他做出来,然后咱们再去啊前端去整合这个啊,获取验证码的这个按钮。
我来说两句