短信验证

package cn;<br></br><br></br><br></br><br></br>import net.sf.json.JSONObject;<br></br><br></br><br></br>import java.io.*;<br></br>import java.net.HttpURLConnection;<br></br>import java.net.URL;<br></br>import java.net.URLEncoder;<br></br>import java.util.HashMap;<br></br>import java.util.Map;<br></br><br></br>/**<br></br> *短信API服务调用示例代码 - 聚合数据<br></br> *在线接口文档:http://www.juhe.cn/docs/54<br></br> **/<br></br><br></br>public class JuheDemo {<br></br>    public static final String DEF_CHATSET = "UTF-8";<br></br>    public static final int DEF_CONN_TIMEOUT = 30000;<br></br>    public static final int DEF_READ_TIMEOUT = 30000;<br></br>    public static String userAgent =  "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36";<br></br><br></br>    //配置您申请的KEY<br></br>    public static final String APPKEY ="3a35deff0de3********8ee32b4218c ";<br></br><br></br>    //1.屏蔽词检查测<br></br>    public static void getRequest1(){<br></br>        String result =null;<br></br>        String url ="http://v.juhe.cn/sms/black";//请求接口地址<br></br>        Map params = new HashMap();//请求参数<br></br>        params.put("word","");//需要检测的短信内容,需要UTF8 URLENCODE<br></br>        params.put("key",APPKEY);//应用APPKEY(应用详细页查询)<br></br><br></br>        try {<br></br>            result =net(url, params, "GET");<br></br>            JSONObject object = JSONObject.fromObject(result);<br></br>            if(object.getInt("error_code")==0){<br></br>                System.out.println(object.get("result"));<br></br>            }else{<br></br>                System.out.println(object.get("error_code")+":"+object.get("reason"));<br></br>            }<br></br>        } catch (Exception e) {<br></br>            e.printStackTrace();<br></br>        }<br></br>    }<br></br>    //2.发送短信<br></br>    public static void getRequest2(String phone,String num){<br></br>        String result =null;<br></br>        String url ="http://v.juhe.cn/sms/send";//请求接口地址<br></br>        Map params = new HashMap();//请求参数<br></br>        params.put("mobile",phone);//接收短信的手机号码<br></br>        params.put("tpl_id","184722");//短信模板ID,请参考个人中心短信模板设置****<br></br>        params.put("tpl_value","#code#="+num);//变量名和变量值对。如果你的变量名或者变量值中带有#&=中的任意一个特殊符号,请先分别进行urlencode编码后再传递,<a href="http://www.juhe.cn/news/index/id/50" target="_blank">详细说明></a><br></br>        params.put("key",APPKEY);//应用APPKEY(应用详细页查询)<br></br>        params.put("dtype","json");//返回数据的格式,xml或json,默认json****<br></br><br></br>        try {<br></br>            result =net(url, params, "GET");<br></br>            JSONObject object = JSONObject.fromObject(result);<br></br>            if(object.getInt("error_code")==0){<br></br>                System.out.println(object.get("result"));<br></br>            }else{<br></br>                System.out.println(object.get("error_code")+":"+object.get("reason"));<br></br>            }<br></br>        } catch (Exception e) {<br></br>            e.printStackTrace();<br></br>        }<br></br>    }<br></br><br></br>    public static void main(String[] args) {<br></br>        JuheDemo.getRequest2("156***77710","123456");<br></br>    }<br></br><br></br><br></br>    /**<br></br>     *<br></br>     * @param strUrl 请求地址<br></br>     * @param params 请求参数<br></br>     * @param method 请求方法<br></br>     * @return  网络请求字符串<br></br>     * @throws Exception<br></br>     */<br></br>    public static String net(String strUrl, Map params,String method) throws Exception {<br></br>        HttpURLConnection conn = null;<br></br>        BufferedReader reader = null;<br></br>        String rs = null;<br></br>        try {<br></br>            StringBuffer sb = new StringBuffer();<br></br>            if(method==null || method.equals("GET")){<br></br>                strUrl = strUrl+"?"+urlencode(params);<br></br>            }<br></br>            URL url = new URL(strUrl);<br></br>            conn = (HttpURLConnection) url.openConnection();<br></br>            if(method==null || method.equals("GET")){<br></br>                conn.setRequestMethod("GET");<br></br>            }else{<br></br>                conn.setRequestMethod("POST");<br></br>                conn.setDoOutput(true);<br></br>            }<br></br>            conn.setRequestProperty("User-agent", userAgent);<br></br>            conn.setUseCaches(false);<br></br>            conn.setConnectTimeout(DEF_CONN_TIMEOUT);<br></br>            conn.setReadTimeout(DEF_READ_TIMEOUT);<br></br>            conn.setInstanceFollowRedirects(false);<br></br>            conn.connect();<br></br>            if (params!= null && method.equals("POST")) {<br></br>                try {<br></br>                    DataOutputStream out = new DataOutputStream(conn.getOutputStream());<br></br>                    out.writeBytes(urlencode(params));<br></br>                } catch (Exception e) {<br></br>                    // TODO: handle exception<br></br>                }<br></br>            }<br></br>            InputStream is = conn.getInputStream();<br></br>            reader = new BufferedReader(new InputStreamReader(is, DEF_CHATSET));<br></br>            String strRead = null;<br></br>            while ((strRead = reader.readLine()) != null) {<br></br>                sb.append(strRead);<br></br>            }<br></br>            rs = sb.toString();<br></br>        } catch (IOException e) {<br></br>            e.printStackTrace();<br></br>        } finally {<br></br>            if (reader != null) {<br></br>                reader.close();<br></br>            }<br></br>            if (conn != null) {<br></br>                conn.disconnect();<br></br>            }<br></br>        }<br></br>        return rs;<br></br>    }<br></br><br></br>    //将map型转为请求参数型<br></br>    public static String urlencode(Map<String,Object>data) {<br></br>        StringBuilder sb = new StringBuilder();<br></br>        for (Map.Entry i : data.entrySet()) {<br></br>            try {<br></br>                sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue()+"","UTF-8")).append("&");<br></br>            } catch (UnsupportedEncodingException e) {<br></br>                e.printStackTrace();<br></br>            }<br></br>        }<br></br>        return sb.toString();<br></br>    }<br></br>}

声明:该文章系转载,转载该文章的目的在于更广泛的传递信息,并不代表本网站赞同其观点,文章内容仅供参考。

本站是一个个人学习和交流平台,网站上部分文章为网站管理员和网友从相关媒体转载而来,并不用于任何商业目的,内容为作者个人观点, 并不代表本网站赞同其观点和对其真实性负责。

我们已经尽可能的对作者和来源进行了通告,但是可能由于能力有限或疏忽,导致作者和来源有误,亦可能您并不期望您的作品在我们的网站上发布。我们为这些问题向您致歉,如果您在我站上发现此类问题,请及时联系我们,我们将根据您的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。