例子,發送短信java
<!-- 短信通知 --> <bean id="smsNotifierMap" class="com.xxx.zhenao.SmsNotifier"> <property name="smsUrl" value="${sms.url}"/> <property name="smsAccount" value="${sms.account}"/> <property name="smsPassword" value="${sms.password}"/> </bean>
public class SmsNotifier implements Serializable{ /** * */ private static final long serialVersionUID = -1146414140441377786L; private String smsUrl; private String smsAccount; private String smsPassword; public String getSmsUrl() { return smsUrl; } public void setSmsUrl(String smsUrl) { this.smsUrl = smsUrl; } public String getSmsAccount() { return smsAccount; } public void setSmsAccount(String smsAccount) { this.smsAccount = smsAccount; } public String getSmsPassword() { return smsPassword; } public void setSmsPassword(String smsPassword) { this.smsPassword = smsPassword; } }
MessageServiceImpl 實現以下apache
@Autowired private SmsNotifier smsNotifierMap;
/** * 調用正奧短信接口 */ private String sendsZhenao(String phonenumber,String msgContent){ String sendResult = SmsClientSend.sendSms(smsNotifierMap.getSmsUrl(), smsNotifierMap.getSmsAccount(), smsNotifierMap.getSmsPassword(), phonenumber, msgContent); String[] strArr = sendResult.split(":"); String[] resultArr = strArr[2].split(","); return resultArr[0]; }
import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpEntity; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; /** * * @ClassName: SmsClientSend * @Description: 短信發送 */ public class SmsClientSend { /** * @param url * :必填--發送鏈接地址URL--好比>http://139.129.128.71:8086/msgHttp/json/mt * * @param account * :必填--用戶賬號 * @param password * :必填--數字簽名:(接口密碼、時間戳32位MD5加密生成) * @param mobile * :必填--發送的手機號碼,多個能夠用逗號隔好比>13512345678,13612345678 * @param content * :必填--實際發送內容 * @return 返回發送以後收到的信息 */ public static String sendSms(String url,String account, String password, String mobile, String content) { String resultContent = ""; CloseableHttpClient httpclient = HttpClients.createDefault(); CloseableHttpResponse response = null; HttpPost httpPost = new HttpPost(url); List<BasicNameValuePair> formparams = new ArrayList<BasicNameValuePair>(); long timestamps = System.currentTimeMillis(); formparams.add(new BasicNameValuePair("account", account)); formparams.add(new BasicNameValuePair("password", SecurityUtil.getMD532Str(password+mobile+timestamps))); formparams.add(new BasicNameValuePair("mobile", mobile)); formparams.add(new BasicNameValuePair("content", content)); formparams.add(new BasicNameValuePair("timestamps", timestamps+"")); UrlEncodedFormEntity uefEntity; try { long start = System.currentTimeMillis(); uefEntity = new UrlEncodedFormEntity(formparams, "UTF-8"); httpPost.setEntity(uefEntity); System.out.println("1 "+EntityUtils.toString(httpPost.getEntity())); System.out.println("2 "+"httpPost.-->"+httpPost.toString()); CloseableHttpResponse httpResponse = httpclient.execute(httpPost); System.out.println("3 "+"httpResponse-->"+httpResponse.toString()); HttpEntity entity = httpResponse.getEntity(); System.out.println("4 "+httpResponse.getStatusLine().toString()); if (entity != null) { resultContent = EntityUtils.toString(entity, "UTF-8"); System.out.println("5\n "+resultContent); } long end = System.currentTimeMillis(); System.out.println("cost -->"+(end -start)); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally { // 關閉鏈接,釋放資源 try { if(response != null){ response.close(); } httpclient.close(); } catch (IOException e) { e.printStackTrace(); } } return resultContent; } }