/** * 发送单条短信 * * @param mobileNumber 手机号码 * @param content 短信内容 */ pubilc void test(String mobileNumber,String content){ LOGGER.info("start into sms send. accept=[{}]", mobileNumber); //1建立HttpClient对象实例 HttpClient client = new HttpClient(); //2.创建请求方式post,并制定url PostMethod post = new PostMethod(url); //在头文件设置转码 post.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); //3.HttpPost,需要NameValuePair对象来设置请求参数。 NameValuePair[] data = { new NameValuePair("username", username), new NameValuePair("secret_key", password), new NameValuePair("to", mobileNumber), new NameValuePair("body", sign + content), }; post.setRequestBody(data); try { //发送短信 Integer status = client.executeMethod(post); LOGGER.info("end send message. status=[{}]", status); System.out.println("end send message. status=[{}]" + status); if (status != 200) { throw new SMSException(SMSResponseCode.getMsgByCode(status).orElse("短信未知错误,status=" + status)); } } catch (IOException e) { LOGGER.error("send sms IOException", e); throw new SMSException("发送单条短信IO异常", e); } finally { //关闭连接 post.releaseConnection(); LOGGER.info("end sms send. accept=[{}]", mobileNumber); } }
第一个导入这个包:
import org.apache.commons.httpclient.HttpClient;
第二个这个包:
import org.apache.http.impl.client.CloseableHttpClient;
public static void sendTest(){
// 创建默认的httpClient实例.
CloseableHttpClient httpclient = HttpClients.createDefault();
// 创建httppost
HttpPost httppost = new HttpPost(url);
// 创建参数队列
List<BasicNameValuePair> formparams = new ArrayList<BasicNameValuePair>();
formparams.add(new BasicNameValuePair("username", "***"));
formparams.add(new BasicNameValuePair("key", "***"));
formparams.add(new BasicNameValuePair("to", "sdfsfcdfs"));
formparams.add(new BasicNameValuePair("body", "【短信签名】脸搁着了,亲不亲看你了。"));
UrlEncodedFormEntity uefEntity;
try {
uefEntity = new UrlEncodedFormEntity(formparams, "UTF-8");
httppost.setEntity(uefEntity);
System.out.println("executing request " + httppost.getURI());
CloseableHttpResponse response = httpclient.execute(httppost);
try {
HttpEntity entity = response.getEntity();
int code = response.getStatusLine().getStatusCode();
System.out.println(code);
if (entity != null) {
System.out.println("--------------------------------------");
System.out.println("Response content: " + EntityUtils.toString(entity, "UTF-8"));
System.out.println("--------------------------------------");
}
} finally {
response.close();
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭连接,释放资源
try {
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}