public String sendCode(String phoneString){
String code=createRandomVcode();//验证码 // 用户名 String name="nangcheng"; // 密码 String pwd="405D046F8845AF375C5304360CCD"; // 电话号码字符串,中间用英文逗号间隔 StringBuffer mobileString=new StringBuffer(phoneString); // 内容字符串 StringBuffer contextString=new StringBuffer(code); // 签名 String sign="【海络】"; // 追加发送时间,可为空,为空为及时发送 String stime=""; // 扩展码,必须为数字 可为空 StringBuffer extno=new StringBuffer(); try { String result=doPost(name, pwd, mobileString, contextString, sign, stime, extno); log.info("Send code is"+result); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return code; } /** * 发送短信 * * @param name 用户名 * @param pwd 密码 * @param mobileString 电话号码字符串,中间用英文逗号间隔 * @param contextString 内容字符串 * @param sign 签名 * @param stime 追加发送时间,可为空,为空为及时发送 * @param extno 扩展码,必须为数字 可为空 * @return * @throws Exception */ public static String doPost(String name, String pwd, StringBuffer mobileString, StringBuffer contextString, String sign, String stime, StringBuffer extno) throws Exception { StringBuffer param = new StringBuffer(); param.append("name="+name); param.append("&pwd="+pwd); param.append("&mobile=").append(mobileString); param.append("&content=").append(URLEncoder.encode(contextString.toString(),"UTF-8")); param.append("&stime="+stime); param.append("&sign=").append(URLEncoder.encode(sign,"UTF-8")); param.append("&type=pt"); param.append("&extno=").append(extno); URL localURL = new URL("http://api.daiyicloud.com/asmx/smsservice.aspx?"); URLConnection connection = localURL.openConnection(); HttpURLConnection httpURLConnection = (HttpURLConnection)connection; httpURLConnection.setDoOutput(true); httpURLConnection.setRequestMethod("POST"); httpURLConnection.setRequestProperty("Accept-Charset", "utf-8"); httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); httpURLConnection.setRequestProperty("Content-Length", String.valueOf(param.length())); OutputStream outputStream = null; OutputStreamWriter outputStreamWriter = null; InputStream inputStream = null; InputStreamReader inputStreamReader = null; BufferedReader reader = null; String resultBuffer = ""; try { outputStream = httpURLConnection.getOutputStream(); outputStreamWriter = new OutputStreamWriter(outputStream); outputStreamWriter.write(param.toString()); outputStreamWriter.flush(); if (httpURLConnection.getResponseCode() >= 300) { throw new Exception("HTTP Request is not success, Response code is " + httpURLConnection.getResponseCode()); } inputStream = httpURLConnection.getInputStream(); resultBuffer = convertStreamToString(inputStream); } finally { if (outputStreamWriter != null) { outputStreamWriter.close(); } if (outputStream != null) { outputStream.close(); } if (reader != null) { reader.close(); } if (inputStreamReader != null) { inputStreamReader.close(); } if (inputStream != null) { inputStream.close(); } } return resultBuffer; } /** * 转换返回值类型为UTF-8格式. * @param is * @return */ public static String convertStreamToString(InputStream is) { StringBuilder sb1 = new StringBuilder(); byte[] bytes = new byte[4096]; int size = 0; try { while ((size = is.read(bytes)) > 0) { String str = new String(bytes, 0, size, "UTF-8"); sb1.append(str); } } catch (IOException e) { e.printStackTrace(); } finally { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } return sb1.toString(); } public static String createRandomVcode(){ //验证码 String vcode = ""; for (int i = 0; i < 4; i++) { vcode = vcode + (int)(Math.random() * 9); } return vcode; }