zoukankan      html  css  js  c++  java
  • 短信接口

    @Component
    public class SMSConnectorImpl implements SMSConnector {
        final static Logger logger = LoggerFactory
                .getLogger(SMSConnectorImpl.class);

        RestTemplate restTemplate;

        @Value("${sms.url}")
        private String smsUrl;

        @Value("${sms.accountid}")
        private String smsAccountid;

        @Value("${sms.password}")
        private String smsPassword;

        @Value("${sms.code}")
        private String smsCode;

        private String message;

        public SMSConnectorImpl() {
            restTemplate = new RestTemplate();
            setConfig();
        }

        public boolean sendVerifyCode(String phone, String verifyCode) {
            boolean result = false;
            this.message = "account=" + smsAccountid + "&pwd=" + smsPassword
                    + "&product=" + smsCode + "&mobile=$phone"
                    + "&message=邻食验证码:$verifycode" + ",请在5分钟内按页面提示完成验证码校验【邻食】";
            String sendMessage = message.replace("$phone", phone).replace(
                    "$verifycode", verifyCode);

            logger.info(sendMessage);

            Map<String, Object> urlVariables = new HashMap<String, Object>();
            String response = restTemplate.postForObject(smsUrl, sendMessage,
                    String.class, urlVariables);

            logger.info(response);

            if (response != null && response.contains("200,"))
                return true;

            return result;
        }

        private void setConfig() {
            ClientHttpRequestInterceptor acceptHeader = new AcceptHeaderHttpRequestInterceptor();
            List<ClientHttpRequestInterceptor> list = new ArrayList<ClientHttpRequestInterceptor>();
            list.add(acceptHeader);
            restTemplate.setInterceptors(list);
            StringHttpMessageConverter stringHttpMessageConverter = new StringHttpMessageConverter(
                    Charset.forName("GBK"));
            restTemplate.getMessageConverters().set(1, stringHttpMessageConverter);
        }

        class AcceptHeaderHttpRequestInterceptor implements
                ClientHttpRequestInterceptor {
            @Override
            public ClientHttpResponse intercept(HttpRequest request, byte[] body,
                    ClientHttpRequestExecution execution) throws IOException {
                HttpRequestWrapper requestWrapper = new HttpRequestWrapper(request);
                // List<MediaType> list = new ArrayList<MediaType>();
                requestWrapper.getHeaders().setContentType(
                        MediaType.APPLICATION_FORM_URLENCODED);
                requestWrapper.getHeaders().set("Accept-Charset", "utf-8");
                return execution.execute(requestWrapper, body);
            }
        }

  • 相关阅读:
    qt获取本机ip
    qt获取本机用户名
    QT获取主机名称
    关于代码控制管理的一些想法
    QLabel添加Click信号
    QT中,控件显示不下,用...表示
    qt获取屏幕
    Matlab boxplot for Multiple Groups(多组数据的箱线图)
    Linux Bash代码 利用for循环实现命令的多次执行
    DataProcessing
  • 原文地址:https://www.cnblogs.com/yousen/p/4627266.html
Copyright © 2011-2022 走看看