2019-10-23 16:34

中华铁路网-项目日志

Oblivion

项目

(786)

(2)

收藏

blog

今天我着重完成了12306网站登录、注册页面的模板扣取。并将模板应用到自己的项目中,更改为thymeleaf页面。

项目使用springBoot搭建完成,已放入gitee仓库供小组其他成员下载。

登录、注册页面的前端都已完成,明天计划完成后端代码,连接数据库,实现登录注册功能。


杨琛:完成了注册页面的数据库共享,注册页面的具体样式,并研究了手机验证码,花钱买了400条验证码,使用阿里云api的验证码

张晨:完成了十几万条列车信息的数据库爬取。


以下为手机验证码的代码


//必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式;发送国际/港澳台消息时,接收号码格式为国际区号+号码,如“85200000000”

        request.setPhoneNumbers(userphone);

        //必填:短信签名-可在短信控制台中找到

        request.setSignName("中华铁路网");

       // System.out.println(3);

        //验证码code

        String code = RandomCode.getRandomNumCode(4);

       // System.out.println("验证码:"+code);

        //必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版

        request.setTemplateCode("SMS_175485606");

        //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为

        //友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败

        request.setTemplateParam("{\"name\":\""+userphone+"\", \"code\":\""+code+"\"}");

        //可选-上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段)

        //request.setSmsUpExtendCode("90997");

        //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者

        request.setOutId("yourOutId");

       // System.out.println(4);

//请求失败这里会抛ClientException异常

        SendSmsResponse sendSmsResponse = null;

        try {

            sendSmsResponse = acsClient.getAcsResponse(request);

        } catch (ClientException e) {

            e.printStackTrace();

        }

      //  System.out.println(5);

        if(sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) {

//请求成功

         //   System.out.println(6);

            System.out.println("发送成功");

            System.out.println("验证码:"+code);

        }

    }


    @RequestMapping("changePhone")

    @ResponseBody

    public void changePhone(String phone){

        // System.out.println("手机号:"+userphone);

        //用户AccessKey

        //LTAI4Fjad2K17RWtrKL89ocV

        //设置超时时间-可自行调整

        System.setProperty("sun.net.client.defaultConnectTimeout", "10000");

        System.setProperty("sun.net.client.defaultReadTimeout", "10000");

//初始化ascClient需要的几个参数

        final String product = "Dysmsapi";//短信API产品名称(短信产品名固定,无需修改)

        final String domain = "dysmsapi.aliyuncs.com";//短信API产品域名(接口地址固定,无需修改)

        // System.out.println(1);

//替换成你的AK

        final String accessKeyId ="LTAI4FgLF6P9ciQ8zH1vUK1S";//你的accessKeyId,参考本文档步骤2

        final String accessKeySecret = "lOsuaUfIujVwkPIQDLscP0fG1F6vmp";//你的accessKeySecret,参考本文档步骤2

//初始化ascClient,暂时不支持多region(请勿修改)

        IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId,

                accessKeySecret);

        try {

            DefaultProfile.addEndpoint("cn-hangzhou","cn-hangzhou", product, domain);

        } catch (ClientException e) {

            e.printStackTrace();

        }

        IAcsClient acsClient = new DefaultAcsClient(profile);

        //组装请求对象

        // System.out.println(2);

        SendSmsRequest request = new SendSmsRequest();

        //使用post提交

        request.setMethod(MethodType.POST);

        //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式;发送国际/港澳台消息时,接收号码格式为国际区号+号码,如“85200000000”

        request.setPhoneNumbers(phone);

        //必填:短信签名-可在短信控制台中找到

        request.setSignName("中华铁路网");

        // System.out.println(3);

        //验证码code

        String code = RandomCode.getRandomNumCode(4);

        // System.out.println("验证码:"+code);

        //必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版

        request.setTemplateCode("SMS_175485606");

        //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为

        //友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败

        request.setTemplateParam("{\"name\":\""+phone+"\", \"code\":\""+code+"\"}");

        //可选-上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段)

        //request.setSmsUpExtendCode("90997");

        //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者

        request.setOutId("yourOutId");

//替换成你的AK

        final String accessKeyId ="LTAI4FgLF6P9ciQ8zH1vUK1S";//你的accessKeyId,参考本文档步骤2

        final String accessKeySecret = "lOsuaUfIujVwkPIQDLscP0fG1F6vmp";//你的accessKeySecret,参考本文档步骤2

//初始化ascClient,暂时不支持多region(请勿修改)

        IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId,

                accessKeySecret);

        try {

            DefaultProfile.addEndpoint("cn-hangzhou","cn-hangzhou", product, domain);

        } catch (ClientException e) {

            e.printStackTrace();

        }

        IAcsClient acsClient = new DefaultAcsClient(profile);

        //组装请求对象

        // System.out.println(2);

        SendSmsRequest request = new SendSmsRequest();

        //使用post提交

        request.setMethod(MethodType.POST);

        //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式;发送国际/港澳台消息时,接收号码格式为国际区号+号码,如“85200000000”

        request.setPhoneNumbers(phone);

        //必填:短信签名-可在短信控制台中找到

        request.setSignName("中华铁路网");

        // System.out.println(3);

        //验证码code

        String code = RandomCode.getRandomNumCode(4);

        // System.out.println("验证码:"+code);

        //必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版

        request.setTemplateCode("SMS_175485606");

        //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为

        //友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败

        request.setTemplateParam("{\"name\":\""+phone+"\", \"code\":\""+code+"\"}");

        //可选-上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段)

        //request.setSmsUpExtendCode("90997");

        //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者

        request.setOutId("yourOutId");

//替换成你的AK

        final String accessKeyId ="LTAI4FgLF6P9ciQ8zH1vUK1S";//你的accessKeyId,参考本文档步骤2

        final String accessKeySecret = "lOsuaUfIujVwkPIQDLscP0fG1F6vmp";//你的accessKeySecret,参考本文档步骤2

//初始化ascClient,暂时不支持多region(请勿修改)

        IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId,

                accessKeySecret);

        try {

            DefaultProfile.addEndpoint("cn-hangzhou","cn-hangzhou", product, domain);

        } catch (ClientException e) {

            e.printStackTrace();

        }

        IAcsClient acsClient = new DefaultAcsClient(profile);

        //组装请求对象

        // System.out.println(2);

        SendSmsRequest request = new SendSmsRequest();

        //使用post提交

        request.setMethod(MethodType.POST);

        //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式;发送国际/港澳台消息时,接收号码格式为国际区号+号码,如“85200000000”

        request.setPhoneNumbers(phone);

        //必填:短信签名-可在短信控制台中找到

        request.setSignName("中华铁路网");

        // System.out.println(3);

        //验证码code

        String code = RandomCode.getRandomNumCode(4);

        // System.out.println("验证码:"+code);

        //必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版

        request.setTemplateCode("SMS_175485606");

        //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为

        //友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败

        request.setTemplateParam("{\"name\":\""+phone+"\", \"code\":\""+code+"\"}");

        //可选-上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段)

        //request.setSmsUpExtendCode("90997");

        //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者

        request.setOutId("yourOutId");

//替换成你的AK

        final String accessKeyId ="LTAI4FgLF6P9ciQ8zH1vUK1S";//你的accessKeyId,参考本文档步骤2

        final String accessKeySecret = "lOsuaUfIujVwkPIQDLscP0fG1F6vmp";//你的accessKeySecret,参考本文档步骤2

//初始化ascClient,暂时不支持多region(请勿修改)

        IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId,

                accessKeySecret);

        try {

            DefaultProfile.addEndpoint("cn-hangzhou","cn-hangzhou", product, domain);

        } catch (ClientException e) {

            e.printStackTrace();

        }

        IAcsClient acsClient = new DefaultAcsClient(profile);

        //组装请求对象

        // System.out.println(2);

        SendSmsRequest request = new SendSmsRequest();

        //使用post提交

        request.setMethod(MethodType.POST);

        //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式;发送国际/港澳台消息时,接收号码格式为国际区号+号码,如“85200000000”

        request.setPhoneNumbers(phone);

        //必填:短信签名-可在短信控制台中找到

        request.setSignName("中华铁路网");

        // System.out.println(3);

        //验证码code

        String code = RandomCode.getRandomNumCode(4);

        // System.out.println("验证码:"+code);

        //必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版

        request.setTemplateCode("SMS_175485606");

        //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为

        //友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败

        request.setTemplateParam("{\"name\":\""+phone+"\", \"code\":\""+code+"\"}");

        //可选-上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段)

        //request.setSmsUpExtendCode("90997");

        //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者

        request.setOutId("yourOutId");

//替换成你的AK

        final String accessKeyId ="LTAI4FgLF6P9ciQ8zH1vUK1S";//你的accessKeyId,参考本文档步骤2

        final String accessKeySecret = "lOsuaUfIujVwkPIQDLscP0fG1F6vmp";//你的accessKeySecret,参考本文档步骤2

//初始化ascClient,暂时不支持多region(请勿修改)

        IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId,

                accessKeySecret);

        try {

            DefaultProfile.addEndpoint("cn-hangzhou","cn-hangzhou", product, domain);

        } catch (ClientException e) {

            e.printStackTrace();

        }

        IAcsClient acsClient = new DefaultAcsClient(profile);

        //组装请求对象

        // System.out.println(2);

        SendSmsRequest request = new SendSmsRequest();

        //使用post提交

        request.setMethod(MethodType.POST);

        //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式;发送国际/港澳台消息时,接收号码格式为国际区号+号码,如“85200000000”

        request.setPhoneNumbers(phone);

        //必填:短信签名-可在短信控制台中找到

        request.setSignName("中华铁路网");

        // System.out.println(3);

        //验证码code

        String code = RandomCode.getRandomNumCode(4);

        // System.out.println("验证码:"+code);

        //必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版

        request.setTemplateCode("SMS_175485606");

        //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为

        //友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败

        request.setTemplateParam("{\"name\":\""+phone+"\", \"code\":\""+code+"\"}");

        //可选-上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段)

        //request.setSmsUpExtendCode("90997");

        //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者

        request.setOutId("yourOutId");


2条评论

点击登录参与评论