java后台调用http请求


1:代码   @Value("${sms.username}")  可以将sms.properties配置文件中的值注入到username

 1     //这种方式是将sms.properties里的值注入到属性中
 2     @Value("${sms.username}")
 3     private String username;
 4 
 5     @Value("${sms.password}")
 6     private String password;
 7 
 8     @Value("${sms.apiKey}")
 9     private String apiKey;
10 
11     @Value("${sms.url}")
12     private String url;
13     
14     @Override
15     public void sendVerifyCode(String phoneNumber) {
16         
17         // 首先的到session中VerifyCodeVo
18         VerifyCodeVO vc = UserContext.getVerifyCode();
19         if (vc == null // 表示没有发过验证码    如果已经发送了要判断两次发送之间的时间间隔
20                 || (vc != null && DateUtil.getSecondsBetweenDates(vc.getSendTime(),new Date()) 
21                           >= BidConst.SEND_VERIFYCODE_INTERVAL)) {
22             // 生成一个验证码
23             String code = UUID.randomUUID().toString().substring(0, 4);
24             try {
25                 // 创建一个URL对象
26                 URL targetUrl = new URL(this.url);
27                 // 从URL对象中获得一个连接对象
28                 HttpURLConnection conn = (HttpURLConnection) targetUrl.openConnection();
29                 // 设置请求方式 注意这里的POST或者GET必须大写
30                 conn.setRequestMethod("POST");
31                 // 设置POST请求是有请求体的
32                 conn.setDoOutput(true);
33                 // 拼接发送的短信内容
34                 StringBuilder params = new StringBuilder(100)
35                         .append("username=").append(username)
36                         .append("&password=").append(password)
37                         .append("&apikey=").append(apiKey).append("&mobile=")
38                         .append(phoneNumber).append("&content=")
39                         .append("您的验证码是:").append(code).append(",有效时间是:")
40                         .append(BidConst.VERIFYCODE_VALID_TIME).append("秒!");
41                 // 写入参数
42                 conn.getOutputStream().write(params.toString().getBytes());
43                 // 读入响应
44                 String response = StreamUtils.copyToString(
45                         conn.getInputStream(), Charset.forName("UTF-8"));
46                 // 发送成功 以success开头
47                 if (response.startsWith("success")) {
48                    // 构建一个vo对象 将vo放入session中
49                     vc = new VerifyCodeVO(phoneNumber, code, new Date());
50                     UserContext.putVerifyCode(vc);
51                 }else{
52                     throw new RuntimeException();
53                 }
54                 // 构建一个vo对象 将vo放入session中
55 //                vc = new VerifyCodeVO(phoneNumber, code, new Date());
56 //                UserContext.putVerifyCode(vc);
57              System.out.println("手机号" +phoneNumber +"验证码:" + code );
58             } catch (Exception e) {
59                 e.printStackTrace();
60                 throw new RuntimeException("发送短信失败");
61             }
62         } else {
63             throw new RuntimeException("发送过于频繁");
64         }
65     }

2:sms.properties配置文件

1 sms.username=admin
2 sms.password=admin
3 sms.url=http://172.16.71.27:8082/send.do
4 sms.apiKey=admin

3:调用的其它项目中Controller层中的 send.do 方法实现

1     @RequestMapping("/send")
2     @ResponseBody
3     public String send(String username, String password, String apikey, String mobile, String content) {
4         System.out.println("发送短信给手机:" + mobile + ",发送短信内容为:" + content);
5         return "success"; 
6 }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM