• 发送验证码


    controller

     1   /**
     2      * 发送短信验证码
     3      * @param phoneNumber
     4      * @return
     5      * @throws Exception
     6      */
     7     @GetMapping(value = "sendSmsCode")
     8     public Object sendSmsCode(String phoneNumber,HttpServletRequest request) throws Exception{
     9         if(StringUtils.isEmpty(phoneNumber)){
    10             return RestResponse.buildError(ReturnCode.parame_is_null);
    11         }
    12         if(!phoneNumber.matches(ConstantUtil.REGEX_MOBILE)){
    13             return RestResponse.buildError(ReturnCode.pLength_is_error);
    14         }
    15         String source = request.getHeader("source");
    16         //获取验证码
    17         String smsCode = CodeUtil.getSmsCode();
    18         log.info("短信验证码:"+smsCode);
    19         //存储验证码
    20         GuavaCacheUtil.GLOBAL_CACHE_SMS_CODE.put(ConstantUtil.appendStr(ConstantUtil.sms_code_pre,phoneNumber,source),smsCode);
    21         //存获取验证码的次数
    22         String result = commonService.sendSmsCode(phoneNumber,String.format(MyTokenCache.smsTempMap.get(ConstantUtil.sms_context).toString(),smsCode));
    23         if(StringUtils.isEmpty(result)){
    24             return RestResponse.buildError(ReturnCode.sms_code_send_fail);
    25         }else {
    26             Map jsonMap = JsonUtils.string2Obj(result,Map.class);
    27             String status = jsonMap.get("ReturnStatus").toString();
    28             if(status.equals("Success")){
    29                 return RestResponse.buildSuccess();
    30             }else {
    31                 return RestResponse.buildError(ReturnCode.sms_code_send_fail);
    32             }
    33         }
    34     }

    impl

     1 public String sendSmsCode(String phoneNumber, String context) throws Exception {
     2         //调用短信接口
     3         String method = "POST";
     4         Map<String, String> headers = new HashMap<String, String>();
     5         //最后在header中的格式(中间是英文空格)为Authorization:APPCODE xxx
     6         headers.put("Authorization", "APPCODE " + app_code);
     7         Map<String, String> querys = new HashMap<String, String>();
     8         //测试可用默认短信模板,测试模板为专用模板不可修改,如需自定义短信内容或改动任意字符,请联系旺旺或QQ726980650进行申请
     9         querys.put("content", context);
    10         querys.put("mobile", phoneNumber);
    11         Map<String, String> bodys = new HashMap<String, String>();
    12         HttpResponse response = HttpUtil.doPost(sms_code_url, method, headers, querys, bodys);
    13         String result = EntityUtils.toString(response.getEntity());
    14         if (result.equals("")) {
    15             log.error(response.toString());
    16             if (StringUtils.isEmpty(result)) {
    17                 log.error("验证短信发送次数已经用完,请联系管理员购买");
    18             }
    19         } else {
    20             log.info(result);
    21         }
    22         return result;
    23     }
    HttpUtil 
      1 package com.zdkj.umt.util.http;
      2 
      3 
      4 import com.aliyun.oss.common.utils.StringUtils;
      5 import org.apache.http.HttpResponse;
      6 import org.apache.http.NameValuePair;
      7 import org.apache.http.client.HttpClient;
      8 import org.apache.http.client.entity.UrlEncodedFormEntity;
      9 import org.apache.http.client.methods.HttpDelete;
     10 import org.apache.http.client.methods.HttpGet;
     11 import org.apache.http.client.methods.HttpPost;
     12 import org.apache.http.client.methods.HttpPut;
     13 import org.apache.http.conn.ClientConnectionManager;
     14 import org.apache.http.conn.scheme.Scheme;
     15 import org.apache.http.conn.scheme.SchemeRegistry;
     16 import org.apache.http.conn.ssl.SSLSocketFactory;
     17 import org.apache.http.entity.ByteArrayEntity;
     18 import org.apache.http.entity.StringEntity;
     19 import org.apache.http.impl.client.DefaultHttpClient;
     20 import org.apache.http.message.BasicNameValuePair;
     21 
     22 import javax.net.ssl.SSLContext;
     23 import javax.net.ssl.TrustManager;
     24 import javax.net.ssl.X509TrustManager;
     25 import java.io.UnsupportedEncodingException;
     26 import java.net.URLEncoder;
     27 import java.security.KeyManagementException;
     28 import java.security.NoSuchAlgorithmException;
     29 import java.security.cert.X509Certificate;
     30 import java.util.ArrayList;
     31 import java.util.List;
     32 import java.util.Map;
     33 
     34 /**
     35  * @author liuyanjun
     36  */
     37 public class HttpUtil {
     38 
     39     /**
     40      * get
     41      *
     42      * @param host
     43      * @param path
     44      * @param method
     45      * @param headers
     46      * @param querys
     47      * @return
     48      * @throws Exception
     49      */
     50     public static HttpResponse doGet(String host, String method,
     51                                      Map<String, String> headers,
     52                                      Map<String, String> querys)
     53             throws Exception {
     54         HttpClient httpClient = wrapClient(host);
     55 
     56         HttpGet request = new HttpGet(buildUrl(host, querys));
     57         for (Map.Entry<String, String> e : headers.entrySet()) {
     58             request.addHeader(e.getKey(), e.getValue());
     59         }
     60 
     61         return httpClient.execute(request);
     62     }
     63 
     64     /**
     65      * post form
     66      *
     67      * @param host
     68      * @param method
     69      * @param headers
     70      * @param querys
     71      * @param bodys
     72      * @return
     73      * @throws Exception
     74      */
     75     public static HttpResponse doPost(String host, String method,
     76                                       Map<String, String> headers,
     77                                       Map<String, String> querys,
     78                                       Map<String, String> bodys)
     79             throws Exception {
     80         HttpClient httpClient = wrapClient(host);
     81 
     82         HttpPost request = new HttpPost(buildUrl(host, querys));
     83         for (Map.Entry<String, String> e : headers.entrySet()) {
     84             request.addHeader(e.getKey(), e.getValue());
     85         }
     86 
     87         if (bodys != null) {
     88             List<NameValuePair> nameValuePairList = new ArrayList<NameValuePair>();
     89 
     90             for (String key : bodys.keySet()) {
     91                 nameValuePairList.add(new BasicNameValuePair(key, bodys.get(key)));
     92             }
     93             UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(nameValuePairList, "utf-8");
     94             formEntity.setContentType("application/x-www-form-urlencoded; charset=UTF-8");
     95             request.setEntity(formEntity);
     96         }
     97 
     98         return httpClient.execute(request);
     99     }
    100 
    101     /**
    102      * Post String
    103      *
    104      * @param host
    105      * @param path
    106      * @param method
    107      * @param headers
    108      * @param querys
    109      * @param body
    110      * @return
    111      * @throws Exception
    112      */
    113     public static HttpResponse doPost(String host,  String method,
    114                                       Map<String, String> headers,
    115                                       Map<String, String> querys,
    116                                       String body)
    117             throws Exception {
    118         HttpClient httpClient = wrapClient(host);
    119 
    120         HttpPost request = new HttpPost(buildUrl(host, querys));
    121         for (Map.Entry<String, String> e : headers.entrySet()) {
    122             request.addHeader(e.getKey(), e.getValue());
    123         }
    124 
    125         if (!StringUtils.isNullOrEmpty(body)) {
    126             request.setEntity(new StringEntity(body, "utf-8"));
    127         }
    128 
    129         return httpClient.execute(request);
    130     }
    131 
    132     /**
    133      * Post stream
    134      *
    135      * @param host
    136      * @param path
    137      * @param method
    138      * @param headers
    139      * @param querys
    140      * @param body
    141      * @return
    142      * @throws Exception
    143      */
    144     public static HttpResponse doPost(String host,String method,
    145                                       Map<String, String> headers,
    146                                       Map<String, String> querys,
    147                                       byte[] body)
    148             throws Exception {
    149         HttpClient httpClient = wrapClient(host);
    150 
    151         HttpPost request = new HttpPost(buildUrl(host, querys));
    152         for (Map.Entry<String, String> e : headers.entrySet()) {
    153             request.addHeader(e.getKey(), e.getValue());
    154         }
    155 
    156         if (body != null) {
    157             request.setEntity(new ByteArrayEntity(body));
    158         }
    159 
    160         return httpClient.execute(request);
    161     }
    162 
    163     /**
    164      * Put String
    165      * @param host
    166      * @param path
    167      * @param method
    168      * @param headers
    169      * @param querys
    170      * @param body
    171      * @return
    172      * @throws Exception
    173      */
    174     public static HttpResponse doPut(String host,  String method,
    175                                      Map<String, String> headers,
    176                                      Map<String, String> querys,
    177                                      String body)
    178             throws Exception {
    179         HttpClient httpClient = wrapClient(host);
    180 
    181         HttpPut request = new HttpPut(buildUrl(host, querys));
    182         for (Map.Entry<String, String> e : headers.entrySet()) {
    183             request.addHeader(e.getKey(), e.getValue());
    184         }
    185 
    186         if (!StringUtils.isNullOrEmpty(body)) {
    187             request.setEntity(new StringEntity(body, "utf-8"));
    188         }
    189 
    190         return httpClient.execute(request);
    191     }
    192 
    193     /**
    194      * Put stream
    195      * @param host
    196      * @param path
    197      * @param method
    198      * @param headers
    199      * @param querys
    200      * @param body
    201      * @return
    202      * @throws Exception
    203      */
    204     public static HttpResponse doPut(String host,  String method,
    205                                      Map<String, String> headers,
    206                                      Map<String, String> querys,
    207                                      byte[] body)
    208             throws Exception {
    209         HttpClient httpClient = wrapClient(host);
    210 
    211         HttpPut request = new HttpPut(buildUrl(host, querys));
    212         for (Map.Entry<String, String> e : headers.entrySet()) {
    213             request.addHeader(e.getKey(), e.getValue());
    214         }
    215 
    216         if (body != null) {
    217             request.setEntity(new ByteArrayEntity(body));
    218         }
    219 
    220         return httpClient.execute(request);
    221     }
    222 
    223     /**
    224      * Delete
    225      *
    226      * @param host
    227      * @param path
    228      * @param method
    229      * @param headers
    230      * @param querys
    231      * @return
    232      * @throws Exception
    233      */
    234     public static HttpResponse doDelete(String host, String path, String method,
    235                                         Map<String, String> headers,
    236                                         Map<String, String> querys)
    237             throws Exception {
    238         HttpClient httpClient = wrapClient(host);
    239 
    240         HttpDelete request = new HttpDelete(buildUrl(host, querys));
    241         for (Map.Entry<String, String> e : headers.entrySet()) {
    242             request.addHeader(e.getKey(), e.getValue());
    243         }
    244 
    245         return httpClient.execute(request);
    246     }
    247 
    248     private static String buildUrl(String host, Map<String, String> querys) throws UnsupportedEncodingException {
    249         StringBuilder sbUrl = new StringBuilder();
    250         sbUrl.append(host);
    251         if (null != querys) {
    252             StringBuilder sbQuery = new StringBuilder();
    253             for (Map.Entry<String, String> query : querys.entrySet()) {
    254                 if (0 < sbQuery.length()) {
    255                     sbQuery.append("&");
    256                 }
    257                 if (StringUtils.isNullOrEmpty(query.getKey()) && !StringUtils.isNullOrEmpty(query.getValue())) {
    258                     sbQuery.append(query.getValue());
    259                 }
    260                 if (!StringUtils.isNullOrEmpty(query.getKey())) {
    261                     sbQuery.append(query.getKey());
    262                     if (!StringUtils.isNullOrEmpty(query.getValue())) {
    263                         sbQuery.append("=");
    264                         sbQuery.append(URLEncoder.encode(query.getValue(), "utf-8"));
    265                     }
    266                 }
    267             }
    268             if (0 < sbQuery.length()) {
    269                 sbUrl.append("?").append(sbQuery);
    270             }
    271         }
    272 
    273         return sbUrl.toString();
    274     }
    275 
    276     private static HttpClient wrapClient(String host) {
    277         HttpClient httpClient = new DefaultHttpClient();
    278         if (host.startsWith("https://")) {
    279             sslClient(httpClient);
    280         }
    281 
    282         return httpClient;
    283     }
    284 
    285     private static void sslClient(HttpClient httpClient) {
    286         try {
    287             SSLContext ctx = SSLContext.getInstance("TLS");
    288             X509TrustManager tm = new X509TrustManager() {
    289                 public X509Certificate[] getAcceptedIssuers() {
    290                     return null;
    291                 }
    292                 public void checkClientTrusted(X509Certificate[] xcs, String str) {
    293 
    294                 }
    295                 public void checkServerTrusted(X509Certificate[] xcs, String str) {
    296 
    297                 }
    298             };
    299             ctx.init(null, new TrustManager[] { tm }, null);
    300             SSLSocketFactory ssf = new SSLSocketFactory(ctx);
    301             ssf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
    302             ClientConnectionManager ccm = httpClient.getConnectionManager();
    303             SchemeRegistry registry = ccm.getSchemeRegistry();
    304             registry.register(new Scheme("https", 443, ssf));
    305         } catch (KeyManagementException ex) {
    306             throw new RuntimeException(ex);
    307         } catch (NoSuchAlgorithmException ex) {
    308             throw new RuntimeException(ex);
    309         }
    310     }
    311 }
  • 相关阅读:
    记录opencv使用extractChannel获取单通道时访问报错
    win10系统桌面上用户账户文件夹名变英文的解决方法
    java poi导出excel 带图片内容
    fastadmin相关文档
    tfrxbarcode2dview 和 tfrxbarcode not found 解决办法 ,自带的Fastreport添加条形码之后,一运行就出错
    P4887[模板]莫队二次离线(第十四分块(前体))
    P4557[JSOI2018]战争【凸包,闵可夫斯基和】
    P5113Sabbat of the witch【分块,基数排序】
    Loj#2474「2018 集训队互测 Day 3」北校门外的未来【LCT】
    学号20192411 202120222 《网络与系统攻防技术》实验五实验报告
  • 原文地址:https://www.cnblogs.com/huanglp/p/12901710.html
Copyright © 2020-2023  润新知