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