欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

java短信代碼,源代碼 短信

java怎么實現(xiàn)群發(fā)短信的功能

JAVA實現(xiàn)短信群發(fā)的步驟:

從策劃到設計制作,每一步都追求做到細膩,制作可持續(xù)發(fā)展的企業(yè)網(wǎng)站。為客戶提供網(wǎng)站設計、網(wǎng)站制作、網(wǎng)站策劃、網(wǎng)頁設計、主機域名虛擬主機、網(wǎng)絡營銷、VI設計、 網(wǎng)站改版、漏洞修補等服務。為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,以客戶的口碑塑造優(yōu)易品牌,攜手廣大客戶,共同發(fā)展進步。

1、使用第三方短信平臺服務商,接入短信服務;

2、調用短信提交頁面發(fā)送請求;

3、服務器向第三方短信平臺提交發(fā)送請求;

4、短信平臺通過運營商將短信下發(fā)至用戶的手機上。

以下是秒賽短信平臺JAVA短信驗證碼接口代碼示例

package test;

import java.io.IOException;

import java.io.UnsupportedEncodingException;

import java.net.URISyntaxException;

import java.net.URLEncoder;

import org.apache.commons.httpclient.HttpClient;

import org.apache.commons.httpclient.NameValuePair;

import org.apache.commons.httpclient.methods.PostMethod;

import org.apache.commons.lang3.StringUtils;

public class Apis {

// 短信發(fā)送接口的http地址,請咨詢客服

private static String url = “xxxxxxxxxxxxxxxxxxxxxxxxxxxx”;

// 編碼格式。發(fā)送編碼格式統(tǒng)一用UTF-8

private static String ENCODING = “UTF-8”;

public static void main(String[] args) throws IOException, URISyntaxException {

// 賬號

String account = “************************”;

// 密碼

String pswd = “************************”;

// 修改為您要發(fā)送的手機號,多個用,分割

String mobile = “13*********”;

// 設置您要發(fā)送的內容

String msg = “【秒賽科技】您的驗證碼是:1234”;

// 發(fā)短信調用示例

System.out.println(Apis.send(account,pswd, mobile, msg));

}

/**

* 發(fā)送短信

*

* @param account

* ? ? ? ? ? ?account

* @param pswd

* ? ? ? ? ? ?pswd

* @param mobile

* ? ? ? ? ? ?手機號碼

* @param content

* ? ? ? ? ? ?短信發(fā)送內容

*/

public static String send(String account,String pswd, String mobile, String msg) {

NameValuePair[] data = { new NameValuePair(“account”, account),

new NameValuePair(“pswd”, pswd),

new NameValuePair(“mobile”, mobile),

new NameValuePair(“msg”, msg),

new NameValuePair(“needstatus”, “true”),

new NameValuePair(“product”, “”) };

return doPost(url, data);

}

/**

* 基于HttpClient的post函數(shù)

* PH

* @param url

* ? ? ? ? ? ?提交的URL

*

* @param data

* ? ? ? ? ? ?提交NameValuePair參數(shù)

* @return 提交響應

*/

private static String doPost(String url, NameValuePair[] data) {

HttpClient client = new HttpClient();

PostMethod method = new PostMethod(url);

// method.setRequestHeader(“ContentType”,

// “application/x-www-form-urlencoded;charset=UTF-8”);

method.setRequestBody(data);

// client.getParams()。setContentCharset(“UTF-8”);

client.getParams()。setConnectionManagerTimeout(10000);

try {

client.executeMethod(method);

return method.getResponseBodyAsString();

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

}

如何用Java實現(xiàn)短信自動發(fā)送功能

方法一:

1.web.xml中配置listener

listener

listener-class

cn.com.jxlife.shs.web.action.csinquiry.surrender.MyListener

/listener-class

/listener

2.創(chuàng)建listener

import java.util.Timer;

import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;

public class MyListener implements ServletContextListener {

private Timer timer = null;

@Override

public void contextInitialized(ServletContextEvent sce) {

timer = new Timer(true);

//設置任務計劃,啟動和間隔時間

timer.schedule(new MyTask(), 0, 3*60*1000);

//3分鐘

//timer.schedule(new MyTask(), 0, 3*60*1000);

//在1秒后執(zhí)行此任務,每次間隔2秒

//timer.schedule(new MyTask(), 1000, 2000);

}

@Override

public void contextDestroyed(ServletContextEvent sce) {

timer.cancel();

}

}

3.創(chuàng)建啟動的類MyTask

import java.util.Date;

import java.util.TimerTask;

public class MyTask extends TimerTask {

@Override

public void run() {

System.out.println("call at " + (new Date()));

}

}

方法二:

spring 下實現(xiàn)定時工作的調度框架quartz

· 1。從下載quartz的開源包

quartz-1.7.3.tar.gz

3.07M

· 2。從quartz-1.7.3.tar.gz 找到quartz-1.7.3.jar,放到項目的classpath下

(放到webroot/WEB-INF/lib)下

· 3。定義一個需要時間調度的程序

package com.machome.quartz;

public class CustomJob1 {

public void onTimeWork() {

System.out.println("數(shù)據(jù)備份任務啟動");

System.out.println("...");

System.out.println("數(shù)據(jù)備份任務完成");

}

}

· 4。剩余的工作就都在spring xml文件里完成了

!-- 被調度的bean --

bean id="job1" class="com.machome.quartz.CustomJob1"/bean

!-- 定義任務對象 --

bean id="jobtask1"

class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"

!-- 被調度的bean --

property name="targetObject"

ref bean="job1" /

/property

!-- 被調度的bean中的被調度的方法 --

property name="targetMethod"

valueonTimeWork/value

/property

/bean

!-- 定義觸發(fā)對象 --

bean id="trigger1"

class="org.springframework.scheduling.quartz.CronTriggerBean"

!-- 任務對象 --

property name="jobDetail"

ref bean="jobtask1" /

/property

!-- cron表達式 --

property name="cronExpression"

value10,15,20,25,30,35,40,45,50,55 * * * * ?/value

/property

/bean

!-- 調度對象 --

!-- 如果將lazy-init='false'那么容器啟動就會執(zhí)行調度程序 --

bean id="scheduler" lazy-init="false"

class="org.springframework.scheduling.quartz.SchedulerFactoryBean"

!-- 觸發(fā)對象 --

property name="triggers"

list

ref bean="trigger1" /

/list

/property

/bean

· 5。 將spring 項目部署到TOMCAT或JBOSS服務器上

deploy項目

重啟TOMCAT server

· 6。看結果:

cron表達式參考:Quartz的cron表達式

java 如何發(fā)送短信

這段代碼本身只是利用java訪問了一個url:(",后面帶了一堆的參數(shù):String data = "user_id=" + user_id + "password=" + password +

"mobile_phone=" + mobile_phone +

"msg=" + URLEncoder.encode(msg, "GBK") + "send_date=" + send_date +

"subcode=" + subcode;

,僅此而已,至于具體要怎么發(fā),那就要看這個URL提供放的后臺是如何定義參數(shù)的含義了。

java發(fā)送手機短信

package?com.winhands.quartz;

import?java.io.PrintWriter;

import?java.io.StringWriter;

import?java.io.UnsupportedEncodingException;

import?java.util.ArrayList;

import?java.util.Date;

import?java.util.HashMap;

import?java.util.List;

import?org.slf4j.Logger;

import?org.slf4j.LoggerFactory;

import?com.winhands.base.service.BaseService;

import?com.winhands.util.BaseConstant;

import?com.winhands.web.dict.entity.DictCommon;

import?com.winhands.web.xfhf.entity.SmsOutBox;

import?com.winhands.web.xfhf.entity.SmsVisit;

import?com.winhands.web.xfhf.entity.TaskInfo;

public?class?SmsSendSync?{

public?BaseService?baseService;

public?BaseService?baseServiceMas;

public?static?final?Logger?logger?=?LoggerFactory.getLogger(SmsSendSync.class);

//同步短信到mas機待發(fā)短信表

public?void?work()?{

//?任務ID?100001

//?首先查詢任務是否正在執(zhí)行

//?查詢列表

TaskInfo?taskInfo?=?new?TaskInfo();

taskInfo.setTask_id("100001");

try?{

taskInfo?=?(TaskInfo)?baseService.queryForObject("sms_send.queryTaskStatus",?taskInfo);

//如果狀態(tài)是處室狀態(tài)則執(zhí)行,否則此次任務不執(zhí)行

if?(BaseConstant.task_status_cs.equals(taskInfo.getTask_status()))?{

taskInfo.setTask_status(BaseConstant.task_status_zx);//設置任務執(zhí)行狀態(tài)為執(zhí)行

taskInfo.setTask_last_start_time(new?Date());//設置任務執(zhí)行開始時間

baseService.update("sms_send.updateTaskStatus",?taskInfo);//

//移動號碼庫

HashMapString,String?hashMap?=?new?HashMapString,String();

//134?、135、136、137、138、139、150、151、152、158、159、182、183、184。157、187、188

hashMap.put("134",?"134");

hashMap.put("135",?"135");

hashMap.put("136",?"136");

hashMap.put("137",?"137");

hashMap.put("138",?"138");

hashMap.put("139",?"139");

hashMap.put("150",?"150");

hashMap.put("151",?"151");

hashMap.put("152",?"152");

hashMap.put("157",?"157");

hashMap.put("158",?"158");

hashMap.put("159",?"159");

hashMap.put("182",?"182");

hashMap.put("183",?"183");

hashMap.put("184",?"184");

hashMap.put("187",?"187");

hashMap.put("188",?"188");

SmsVisit?smsSend?=?new?SmsVisit();

smsSend.setSms_status(BaseConstant.sms_status_csh);

List?list?=?baseService.queryForList("sms_send.queryForSmsTask",?smsSend);

List?smsMasList?=?new?ArrayList();

List?smsList?=?new?ArrayList();

if?(list?==?null||list.size()==0)?return;//?如果列表為空,沒有待辦任務,則任務結束

for?(int?i?=?0;?i??list.size();?i++)?{

smsSend?=?(SmsVisit)?list.get(i);

//String?msg?=?messagecontent(smsSend);

String?msg?=?smsSend.getSpare_2();

if(hashMap.get(smsSend.getVisit_phone().substring(0,?3))!=null){

SmsOutBox?smsOutBox?=?new?SmsOutBox();

smsOutBox.setSismsid(smsSend.getP_id());

smsOutBox.setReqdeliveryreport(BaseConstant.NoReport);

smsOutBox.setApplicationid(BaseConstant.APPLICATIONID);

smsOutBox.setDestaddr(smsSend.getVisit_phone());

smsOutBox.setMsgfmt(BaseConstant.MSGFMT);

smsOutBox.setRequesttime(new?Date());

smsOutBox.setExtcode(smsSend.getExtccode());

smsOutBox.setSendmethod(BaseConstant.NoMsg);//?正常短信

smsOutBox.setMessagecontent(msg);

smsMasList.add(smsOutBox);

}else{

boolean?con?=?true;

String?lastMsg?=?msg;

int?xh?=0;

while(con){

lastMsg?=?msg.substring(0,msg.length()??55???55?:?msg.length());

msg?=?msg.substring(msg.length()??55???55?:?msg.length(),msg.length());

if?(msg.equals(""))?{

con?=?false;

}

SmsOutBox?smsOutBox?=?new?SmsOutBox();

smsOutBox.setSismsid(smsSend.getP_id()+(xh==0?"":xh));

xh++;

smsOutBox.setReqdeliveryreport(BaseConstant.NoReport);

smsOutBox.setApplicationid(BaseConstant.APPLICATIONID);

smsOutBox.setDestaddr(smsSend.getVisit_phone());

smsOutBox.setMsgfmt(BaseConstant.MSGFMT);

smsOutBox.setRequesttime(new?Date());

smsOutBox.setExtcode(smsSend.getExtccode());

smsOutBox.setSendmethod(BaseConstant.NoMsg);//?正常短信

smsOutBox.setMessagecontent(lastMsg);

smsMasList.add(smsOutBox);

}

}

SmsVisit?smsSendTemp?=?new?SmsVisit();

smsSendTemp.setP_id(smsSend.getP_id());?

//smsSendTemp.setSpare_2(msg);//短信內容

smsSendTemp.setSms_status_time(new?Date());

smsSendTemp.setSms_status(BaseConstant.sms_status_yfswg);?

smsList.add(smsSendTemp);

}

baseService.insertBatch("sms_send.insertSmsOutBox",?smsMasList);//插入本地歷史記錄表

baseServiceMas.insertBatch("sms_mas.insertSmsOutBox",?smsMasList);//插入mas機待發(fā)送表

baseService.updateBatch("sms_send.updateSmsVisit",?smsList);//更新回訪記錄狀態(tài)

}

}?catch?(Exception?e)?{

e.printStackTrace();

//baseService.saveLog("同步短信到mas機待發(fā)短信表",?"100001",?"同步短信到mas機待發(fā)短信表錯誤");

logger.error("同步短信到mas機待發(fā)短信表錯誤",?getTrace(e));

}finally{

try?{

taskInfo.setTask_status(BaseConstant.task_status_cs);//設置任務執(zhí)行狀態(tài)為初始

taskInfo.setTask_last_end_time(new?Date());//設置任務執(zhí)行結束時間

taskInfo.setTask_status_desc("任務執(zhí)行結束");

baseService.update("sms_send.updateTaskStatus",?taskInfo);//

}?catch?(Exception?e2)?{

e2.printStackTrace();

//?TODO:?handle?exception

}

}

}

public?String?messagecontent(SmsVisit?smsSend){

//XX,您好!您于XX月XX日辦理XX業(yè)務(或XX,您好!XX大隊于XX月XX日對你單位進行監(jiān)督檢查/行政處罰/火災調查),現(xiàn)進行滿意度回訪,請回復數(shù)字:1為滿意;2為基本滿意;3為不滿意。感謝您對消防工作的支持!回復免費。宿遷市公安消防支隊

//首先根據(jù)業(yè)務類型來判斷采用哪種模板?監(jiān)察

StringBuffer?msg?=?new?StringBuffer("");?

if(BaseConstant.jiancha.equals(smsSend.getVisit_deal_business_type())){

msg.append(smsSend.getVisit_name_cn())

???.append(",您好!")

???.append(smsSend.getVisit_deal_org_name())

???.append("于")

???.append(smsSend.getVisit_deal_time().substring(4,?6)).append("月")

???.append(smsSend.getVisit_deal_time().substring(6,?8)).append("日")

???.append("對你單位進行").append(DictCommon.getEntryMap(BaseConstant.jiancha).get(smsSend.getVisit_deal_business()))

???.append(",現(xiàn)進行滿意度回訪,請回復數(shù)字:1為滿意;2為基本滿意;3為不滿意。感謝您對消防工作的支持!");

}else?if(BaseConstant.yewu.equals(smsSend.getVisit_deal_business_type())){

msg.append(smsSend.getVisit_name_cn())

???.append(",您好!您于")

???.append(smsSend.getVisit_deal_time().substring(4,?6)).append("月")

???.append(smsSend.getVisit_deal_time().substring(6,?8)).append("日")

???.append("辦理").append(smsSend.getVisit_deal_business()).append("業(yè)務,")

???.append("現(xiàn)進行滿意度回訪,請回復數(shù)字:1為滿意;2為基本滿意;3為不滿意。感謝您對消防工作的支持!");

}

return?msg.toString();

}

public?BaseService?getBaseService()?{

return?baseService;

}

public?void?setBaseService(BaseService?baseService)?{

this.baseService?=?baseService;

}

public?BaseService?getBaseServiceMas()?{

return?baseServiceMas;

}

public?void?setBaseServiceMas(BaseService?baseServiceMas)?{

this.baseServiceMas?=?baseServiceMas;

}

public?static?void?main(String[]?args){

List?smsMasList?=?new?ArrayList();?

try?{

String?msg?=?"***,您好!*********于2015年5月2日對你單位進行監(jiān)督檢查,現(xiàn)進行滿意度回訪,請回復數(shù)字:1為滿意;2為基本滿意;3為不滿意。感謝您對消防工作的支持!";

SmsOutBox?smsOutBox?=?new?SmsOutBox();

smsOutBox.setSismsid("12344");

smsOutBox.setReqdeliveryreport(BaseConstant.NoReport);

smsOutBox.setApplicationid(BaseConstant.APPLICATIONID);

smsOutBox.setDestaddr("111");

smsOutBox.setMsgfmt(BaseConstant.MSGFMT);

smsOutBox.setRequesttime(new?Date());

smsOutBox.setExtcode("2222");

smsOutBox.setSendmethod(BaseConstant.NoMsg);//?正常短信

boolean?con?=?true;

String?lastMsg?=?msg;

while(con){

lastMsg?=?msg.substring(0,msg.length()??55???55?:?msg.length());

msg?=?msg.substring(msg.length()??55???55?:?msg.length(),msg.length());

if?(msg.equals(""))?{

con?=?false;

}

SmsOutBox?smOutBox_temp?=?new?SmsOutBox();?

smOutBox_temp?=?smsOutBox;

smOutBox_temp.setMessagecontent(lastMsg);

?

smsMasList.add(smOutBox_temp);

}

for(Object?o:smsMasList){

SmsOutBox?smsOutBox2?=?(SmsOutBox)o;

System.out.println(smsOutBox2.getMessagecontent());

}

}?catch?(Exception?e)?{

//?TODO?Auto-generated?catch?block

e.printStackTrace();

}

}

public?static?String?getTrace(Throwable?t)?{

StringWriter?stringWriter=?new?StringWriter();

PrintWriter?writer=?new?PrintWriter(stringWriter);

t.printStackTrace(writer);

StringBuffer?buffer=?stringWriter.getBuffer();

return?buffer.toString();

}

}

短信不是你想發(fā)??想發(fā)就能發(fā),是收費的,我們公司是租用的移動MAS平臺的短信發(fā)送接收平臺,上面那是和一個和mas同步的一個小程序,租用別人的mas平臺是收費的,平臺有很多自己選擇,有發(fā)送接口可以調,發(fā)送內容自己提供

java怎么同步發(fā)送及異步發(fā)送短信例子解析

發(fā)送短信的接口

根據(jù)自己的情況選擇服務商。

開發(fā)文檔

從開發(fā)文檔中我們可以看到. 可以直接使用http請求也可以使用WebService請求發(fā)送短信. 由于DEMO文件夾下的java和jsp文件夾中的代碼都是使用http請求發(fā)送短信. 所以這里就不再細說了, 我們使用WebService的方式演示發(fā)送短信.

生成客戶端代碼

從接口文檔中我們知道它的WebService的WSDL的url為:?那么我們可以執(zhí)行下面的命令生成客戶端代碼:

wsimport -keep

其中wsimport是JDK自帶的工具, -keep url選項是"保留生成的文件". 該命令會在當前目錄下生成sms.cn.ihuyi._106包, 以及眾多的類. 接下來開始編寫我們自己的代碼.

定義接口

為了方便, 這里我們首先定義一個接口:

Sms.java

public?interface?Sms?{

/**

*?向mobile發(fā)送短信,?內容為message

*?

*?@param?mobile?手機號

*?@param?message?短信內容

*?@return?成功返回-1,?否則返回其他值

*/

int?sendMessage(String?mobile,?String?message);

}

這個接口很簡單, 只有一個方法. 這個方法用來發(fā)送短信.

同步發(fā)送短信

接下來我們首先實現(xiàn)一個同步發(fā)送短信的類:

IhuyiSmsImpl.java

public?class?IhuyiSmsImpl?implements?Sms?{

private?String?account;

private?String?password;

public?void?setAccount(String?account)?{

this.account?=?account;

}

public?void?setPassword(String?password)?{

this.password?=?password;

}

@Override

public?int?sendMessage(String?mobile,?String?message)?{

cn.ihuyi._106.Sms?factory?=?new?cn.ihuyi._106.Sms();

SmsSoap?smsSoap?=?factory.getSmsSoap();

SubmitResult?submit?=?smsSoap.submit(account,?password,?mobile,?message);

int?code?=?submit.getCode();

if(code?==?2){

return?-1;

}

System.out.println("發(fā)送短信失敗,?code:"?+?code);

return?code;

}

}

異步發(fā)送短信

由于發(fā)送短信涉及到網(wǎng)絡通信, 因此sendMessage方法可能會有一些延遲. 為了改善用戶體驗, 我們可以使用異步發(fā)送短信的方法. 原理很簡單: 如果用戶請求發(fā)送短信, 我們不是直接調用IhuyiSmsImpl的sendMessage方法, 而是將請求保存起來(生產(chǎn)者), 然后告訴用戶: 短信發(fā)送成功. 之后有若干個消費者取出任務, 調用sendMessage方法發(fā)送短信.

這里, 我使用線程池完成上面的任務:

AsyncSmsImpl.java

public?class?AsyncSmsImpl?implements?Sms?{

public?Sms?sendSms;

private?ExecutorService?executorService?=?Executors.newFixedThreadPool(3);

public?void?setSendSms(Sms?sendSms)?{

this.sendSms?=?sendSms;

}

@Override

public?int?sendMessage(String?mobile,?String?message)?{

try?{

executorService.submit(()?-?sendSms.sendMessage(mobile,?message));

}

catch(Exception?e)?{

Sysemt.out.println("提交任務時發(fā)生錯誤"?+?e);

return?0;

}

return?-1;

}

public?void?destroy(){

try{

executorService.shutdown();

}

catch(Exception?e){}

}

}

在第17行, 我們獲得遠程對象的一個代理對象. 之后就可以通過這個代理對象進行發(fā)送短信, 查詢賬戶余額等操作.

第18行, 使用該代理對象的submit方法提交了短信內容. 該方法的參數(shù)信息及返回值含義在接口文檔中有詳細的說明.

第19行我們獲得了結果的狀態(tài)碼. 根據(jù)文檔上的說明, 狀態(tài)碼為2說明提交成功. 簡單起見, 這里我們只關注提交成功的情況. 需要注意的是, 狀態(tài)碼為2只是說明提交成功. 根據(jù)官網(wǎng)上的"3-5秒內響應、100%到達", 我們可以推測. 如果提交成功, 那么基本上3-5秒內,短信就會發(fā)送成功, 根據(jù)用戶的網(wǎng)絡情況, 可能稍有延遲用戶就可以收到短信.

使用這段代碼發(fā)送短信也很簡單, 直接new一個對象, 設置好賬號和密碼就可以發(fā)送短信了.

代碼很簡單, 直接將Sms接口的sendMessage(mobile, message)方法作為一個任務加到線程池的任務隊列中. 這樣等到有空閑線程時, 就會執(zhí)行sendSms.sendMessage(mobile, message)發(fā)送短信. 這里我們假設只要保存到線程池就可以成功發(fā)送短信. 因為發(fā)送失敗的情況實際上很罕見.

java如何實現(xiàn)發(fā)送短信驗證碼功能?

1、創(chuàng)建一個Http的模擬請求工具類,然后寫一個POST方法或者GET方法

/** * 文件說明 * @Description:擴展說明 * @Copyright: XXXX dreamtech.com.cn Inc. All right reserved * @Version: V6.0 */package com.demo.util; import java.io.IOException;import java.util.Map; import org.apache.commons.httpclient.HttpClient;import org.apache.commons.httpclient.HttpException;import org.apache.commons.httpclient.SimpleHttpConnectionManager;import org.apache.commons.httpclient.methods.GetMethod;import org.apache.commons.httpclient.methods.PostMethod; /** * @Author: feizi * @Date: XXXX年XX月XX日 XX:XX:XX * @ModifyUser: feizi * @ModifyDate: XXXX年XX月XX日 XX:XX:XX * @Version:V6.0 */public class HttpRequestUtil { /** * HttpClient 模擬POST請求 * 方法說明 * @Discription:擴展說明 * @param url * @param params * @return String * @Author: feizi * @Date: XXXX年XX月XX日 XX:XX:XX * @ModifyUser:feizi * @ModifyDate: XXXX年XX月XX日 XX:XX:XX */ public static String postRequest(String url, MapString, String params) { //構造HttpClient的實例 HttpClient httpClient = new HttpClient(); //創(chuàng)建POST方法的實例 PostMethod postMethod = new PostMethod(url); //設置請求頭信息 postMethod.setRequestHeader("Connection", "close"); //添加參數(shù) for (Map.EntryString, String entry : params.entrySet()) { postMethod.addParameter(entry.getKey(), entry.getValue()); } //使用系統(tǒng)提供的默認的恢復策略,設置請求重試處理,用的是默認的重試處理:請求三次 httpClient.getParams().setBooleanParameter("http.protocol.expect-continue", false); //接收處理結果 String result = null; try { //執(zhí)行Http Post請求 httpClient.executeMethod(postMethod); //返回處理結果 result = postMethod.getResponseBodyAsString(); } catch (HttpException e) { // 發(fā)生致命的異常,可能是協(xié)議不對或者返回的內容有問題 System.out.println("請檢查輸入的URL!"); e.printStackTrace(); } catch (IOException e) { // 發(fā)生網(wǎng)絡異常 System.out.println("發(fā)生網(wǎng)絡異常!"); e.printStackTrace(); } finally { //釋放鏈接 postMethod.releaseConnection(); //關閉HttpClient實例 if (httpClient != null) { ((SimpleHttpConnectionManager) httpClient.getHttpConnectionManager()).shutdown(); httpClient = null; } } return result; } /** * HttpClient 模擬GET請求 * 方法說明 * @Discription:擴展說明 * @param url * @param params * @return String * @Author: feizi * @Date: XXXX年XX月XX日 XX:XX:XX * @ModifyUser:feizi * @ModifyDate: XXXX年XX月XX日 XX:XX:XX */ public static String getRequest(String url, MapString, String params) { //構造HttpClient實例 HttpClient client = new HttpClient(); //拼接參數(shù) String paramStr = ""; for (String key : params.keySet()) { paramStr = paramStr + "" + key + "=" + params.get(key); } paramStr = paramStr.substring(1); //創(chuàng)建GET方法的實例 GetMethod method = new GetMethod(url + "?" + paramStr); //接收返回結果 String result = null; try { //執(zhí)行HTTP GET方法請求 client.executeMethod(method); //返回處理結果 result = method.getResponseBodyAsString(); } catch (HttpException e) { // 發(fā)生致命的異常,可能是協(xié)議不對或者返回的內容有問題 System.out.println("請檢查輸入的URL!"); e.printStackTrace(); } catch (IOException e) { // 發(fā)生網(wǎng)絡異常 System.out.println("發(fā)生網(wǎng)絡異常!"); e.printStackTrace(); } finally { //釋放鏈接 method.releaseConnection(); //關閉HttpClient實例 if (client != null) { ((SimpleHttpConnectionManager) client.getHttpConnectionManager()).shutdown(); client = null; } } return result; }}

2、在創(chuàng)建一個類,生成驗證碼,然后傳遞相應的參數(shù)(不同的短信平臺接口會有不同的參數(shù)要求,這個一般短信平臺提供的接口文檔中都會有的,直接看文檔然后按要求來即可)

/** * 文件說明 * @Description:擴展說明 * @Copyright: XXXX dreamtech.com.cn Inc. All right reserved * @Version: V6.0 */package com.demo.util; import java.net.URLEncoder;import java.util.HashMap;import java.util.Map; /** * @Author: feizi * @Date: XXXX年XX月XX日 XX:XX:XX * @ModifyUser: feizi * @ModifyDate: XXXX年XX月XX日 XX:XX:XX * @Version:V6.0 */public class SendMsgUtil { /** * 發(fā)送短信消息 * 方法說明 * @Discription:擴展說明 * @param phones * @param content * @return * @return String * @Author: feizi * @Date: 2015年4月17日 下午7:18:08 * @ModifyUser:feizi * @ModifyDate: 2015年4月17日 下午7:18:08 */ @SuppressWarnings("deprecation") public static String sendMsg(String phones,String content){ //短信接口URL提交地址 String url = "短信接口URL提交地址"; MapString, String params = new HashMapString, String(); params.put("zh", "用戶賬號"); params.put("mm", "用戶密碼"); params.put("dxlbid", "短信類別編號"); params.put("extno", "擴展編號"); //手機號碼,多個號碼使用英文逗號進行分割 params.put("hm", phones); //將短信內容進行URLEncoder編碼 params.put("nr", URLEncoder.encode(content)); return HttpRequestUtil.getRequest(url, params); } /** * 隨機生成6位隨機驗證碼 * 方法說明 * @Discription:擴展說明 * @return * @return String * @Author: feizi * @Date: 2015年4月17日 下午7:19:02 * @ModifyUser:feizi * @ModifyDate: 2015年4月17日 下午7:19:02 */ public static String createRandomVcode(){ //驗證碼 String vcode = ""; for (int i = 0; i 6; i++) { vcode = vcode + (int)(Math.random() * 9); } return vcode; } /** * 測試 * 方法說明 * @Discription:擴展說明 * @param args * @return void * @Author: feizi * @Date: XXXX年XX月XX日 XX:XX:XX * @ModifyUser:feizi * @ModifyDate: XXXX年XX月XX日 XX:XX:XX */ public static void main(String[] args) {// System.out.println(SendMsgUtil.createRandomVcode());// System.out.println("ecb=12".substring(1)); System.out.println(sendMsg("18123456789,15123456789", "尊敬的用戶,您的驗證碼為" + SendMsgUtil.createRandomVcode() + ",有效期為60秒,如有疑慮請詳詢XXX-XXX-XXXX【XXX中心】")); }

然后執(zhí)行一下,一般的情況下參數(shù)傳遞正確,按照接口文檔的規(guī)范來操作的話,都會發(fā)送成功的,手機都能收到驗證碼的,然后可能會出現(xiàn)的問題就是:發(fā)送的短信內容有可能會出現(xiàn)中文亂碼,然后就會發(fā)送不成功,按照短信平臺的要求進行相應的編碼即可。一般都會是UTF-8編碼。

網(wǎng)站名稱:java短信代碼,源代碼 短信
轉載來源:http://chinadenli.net/article0/dseheoo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設微信小程序App設計商城網(wǎng)站網(wǎng)站營銷網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設