String smsKey = "*****";
String url = "http://xxxxx";
String vcode = createRandomVcode();
// ("验证码:" + vcode);
// 填充参数
Map<String, String> params = new HashMap<String, String>();
("smsUser", "xxx");
("templateId", "1");
("phone", “1562566155256”);
("vars", "{\"code\":\"" + vcode + "\"}");
// 对参数进行排序
Map<String, String> sortedMap = new TreeMap<String, String>(new Comparator<String>() {
@Override
public int compare(String arg0, String arg1) {
// 忽略大小写
return (arg1);
}
});
(params);
// 计算签名
StringBuilder sb = new StringBuilder();
(smsKey).append("&");
for (String s : ()) {
(("%s=%s&", s, (s)));
}
(smsKey);
String sig = DigestUtils.md5Hex(());
// 将所有参数和签名添加到post请求参数数组里
List<BasicNameValuePair> postparams = new ArrayList<>();
for (String s : ()) {
(new BasicNameValuePair(s, (s)));
}
(new BasicNameValuePair("signature", sig));
HttpPost httpPost = new HttpPost(url);
try {
(new UrlEncodedFormEntity(postparams, "utf8"));
DefaultHttpClient httpclient = new DefaultHttpClient();
().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 3000);
().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, 100000);
HttpResponse response = (httpPost);
HttpEntity entity = ();
(entity);
// ((()));
String str = (());
// (str);
JSONObject obj = (str);
boolean result = ("result");
} catch (Exception e) {
("获取验证码失败!" + ());
} finally {
();
}
随机生成6位数验证码:
public String createRandomVcode() {
//验证码
String vcode = "";
for (int i = 0; i < 6; i++) {
vcode = vcode + (int) (() * 9);
}
return vcode;
}