用Java解决项目对接短信验证码难问题:OkHttp和Unirest介绍

这几个月都在用java做一个企业的积分商城系统,需要用户用手机号码进行注册登录,所以需要接入一个短信验证码进去。

短信验证码实现流程
1、构造手机验证码,生成一个4位的随机数字串;
2、使用接口向短信平台发送手机号和验证码,然后短信平台再把验证码发送到用户提交的手机号上
3、将手机号验证码、操作时间存入Session中,作为后面验证使用;
4、接收用户填写的验证码、手机号及其他注册数据;
5、对比提交的验证码与Session中的验证码是否一致,同时判断提交动作是否在有效期内;
6、验证码正确且在有效期内,请求通过,处理相应的业务。

这里有两种方法接入短信验证码,一是通过OkHttp方法:
`OkHttpClient client = new OkHttpClient().newBuilder()
.followRedirects(false)
.build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded;charset=utf-8");
RequestBody body = RequestBody.create(mediaType, "appId=41KYR0EB&appKey=IIWCKKSR7NOQ&phone=1561894**&templateId=1043&variables=1234");
Request request = new Request.Builder()
.url("https://vip.veesing.com/smsApi/verifyCode")
.method("POST", body)
.addHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8")
.build();
Response response = client.newCall(request).execute();`
二是通过Unirest方法:
`Unirest.setTimeouts(0, 0);
HttpResponse response = Unirest.post("https://vip.veesing.com/smsApi/verifyCode")
.header("Content-Type", "application/x-www-form-urlencoded;charset=utf-8")
.field("appId", "41KYR0EB**")
.field("appKey", "IIWCKKSR7NOQ**")
.field("phone", "1561894**")
.field("templateId", "1043")
.field("variables", "1234")
.asString();
`
以上就是全部内容,有疑问的小伙伴可以在评论区留言。

Java - OkHttp.java和Java - Unirest.java文件下载

你可能感兴趣的:(java,http,https,安全)