新聞中心
如何用Java實(shí)現(xiàn)短信自動(dòng)發(fā)送功能
方法一:
成都創(chuàng)新互聯(lián)于2013年創(chuàng)立,先為祿豐等服務(wù)建站,祿豐等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為祿豐企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
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);
//設(shè)置任務(wù)計(jì)劃,啟動(dòng)和間隔時(shí)間
timer.schedule(new MyTask(), 0, 3*60*1000);
//3分鐘
//timer.schedule(new MyTask(), 0, 3*60*1000);
//在1秒后執(zhí)行此任務(wù),每次間隔2秒
//timer.schedule(new MyTask(), 1000, 2000);
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
timer.cancel();
}
}
3.創(chuàng)建啟動(dò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 下實(shí)現(xiàn)定時(shí)工作的調(diào)度框架quartz
· 1。從下載quartz的開(kāi)源包
quartz-1.7.3.tar.gz
3.07M
· 2。從quartz-1.7.3.tar.gz 找到quartz-1.7.3.jar,放到項(xiàng)目的classpath下
(放到webroot/WEB-INF/lib)下
· 3。定義一個(gè)需要時(shí)間調(diào)度的程序
package com.machome.quartz;
public class CustomJob1 {
public void onTimeWork() {
System.out.println("數(shù)據(jù)備份任務(wù)啟動(dòng)");
System.out.println("...");
System.out.println("數(shù)據(jù)備份任務(wù)完成");
}
}
· 4。剩余的工作就都在spring xml文件里完成了
!-- 被調(diào)度的bean --
bean id="job1" class="com.machome.quartz.CustomJob1"/bean
!-- 定義任務(wù)對(duì)象 --
bean id="jobtask1"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"
!-- 被調(diào)度的bean --
property name="targetObject"
ref bean="job1" /
/property
!-- 被調(diào)度的bean中的被調(diào)度的方法 --
property name="targetMethod"
valueonTimeWork/value
/property
/bean
!-- 定義觸發(fā)對(duì)象 --
bean id="trigger1"
class="org.springframework.scheduling.quartz.CronTriggerBean"
!-- 任務(wù)對(duì)象 --
property name="jobDetail"
ref bean="jobtask1" /
/property
!-- cron表達(dá)式 --
property name="cronExpression"
value10,15,20,25,30,35,40,45,50,55 * * * * ?/value
/property
/bean
!-- 調(diào)度對(duì)象 --
!-- 如果將lazy-init='false'那么容器啟動(dòng)就會(huì)執(zhí)行調(diào)度程序 --
bean id="scheduler" lazy-init="false"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean"
!-- 觸發(fā)對(duì)象 --
property name="triggers"
list
ref bean="trigger1" /
/list
/property
/bean
· 5。 將spring 項(xiàng)目部署到TOMCAT或JBOSS服務(wù)器上
deploy項(xiàng)目
重啟TOMCAT server
· 6??唇Y(jié)果:
cron表達(dá)式參考:Quartz的cron表達(dá)式
用Java調(diào)用短信接口給手機(jī)發(fā)送短信怎么寫代碼??接口已經(jīng)有了,是一個(gè)url.
那你要做的就是向這個(gè)URL發(fā)送數(shù)據(jù)就好,給個(gè)例子:
public???class??Httptest1??{
8??
9???????public???static???void??main(String[]?args)??{
10??
11?????????URL?url??=???null?;
12?????????HttpURLConnection?conn??=???null?;
13?????????OutputStream?outStream??=???null?;
14?????????InputStream?inStream??=???null?;
15?????????
16???????????try???{
17?????????????url??=???new??URL(?"??"?);
18?????????????conn??=??(HttpURLConnection)?url.openConnection();
19?????????????conn.setDoOutput(?true?);
20?????????????conn.setDoInput(?true?);
21??
22?????????????String?sendXml??=???"??xml?version=\?"?1.0?\?"??encoding=\?"?UTF?-?16?\?"??!DOCTYPE?SigMailCommand?SYSTEM?\?"?SigMail.dtd\?"?"?;??//?XML數(shù)據(jù)?????
23??????????????sendXml??+=???"?SigMailCommand?Name=\?"?checkuser\?"?Param?Name=\?"?domainname\?"?test.com.cn/Param?"?;
24?????????????sendXml??+=???"?Param?Name=\?"?username\?"?admin/Param/SigMailCommand?"?;
25??
26?????????????outStream??=??conn.getOutputStream();
27??
28??????????????//?準(zhǔn)備通過(guò)CONN對(duì)象寫入XML數(shù)據(jù)?
29??????????????BufferedWriter?bw??=???new??BufferedWriter(?new??java.io.OutputStreamWriter(outStream,
30??????????????"?UTF-16?"?));
31?????????????bw.write(sendXml);
32?????????????bw.flush();
33?????????????bw.close();
34?????????????
35??????????????//?DataOutputStream?dataOutStream?=?new?DataOutputStream(outStream);
36??????????????//?dataOutStream.writeChars(xml);
37??????????????//?dataOutStream.flush();
38??????????????//?dataOutStream.close();
39?????????????
40??
41??????????????//?準(zhǔn)備通過(guò)CONN對(duì)象讀取返回的XML數(shù)據(jù)?
42??
43?????????????inStream??=??conn.getInputStream();
44?????????????StringBuffer?returnXml??=???new??StringBuffer(?""?);
45?????????????BufferedReader?rd??=???new??BufferedReader(?new??InputStreamReader(inStream,
46??????????????????????"?UTF-16?"?));
47???????????????for??(String?line??=???null?;?(line??=??rd.readLine())??!=???null?;)??{
48?????????????????returnXml.append(line);
49?????????????}?
50?????????????System.out.println(returnXml.toString());
51?????????????rd.close();
52??????????}???catch??(IOException?ex)??{
53?????????????ex.printStackTrace();
54??????????}?finally?{
55???????????????try???{
56??????????????????if??(outStream??!=???null?)
57?????????????????????outStream.close();
58??????????????????if??(inStream??!=???null?)
59?????????????????????inStream.close();
60??????????????????if??(conn??!=???null?)
61?????????????????????conn.disconnect();
62??????????????}???catch??(IOException?e)??{
63??????????????????//??TODO?自動(dòng)生成?catch?塊?
64??????????????????e.printStackTrace();
65?????????????}?
66?????????}?
67??
68?????}?
69??
70?}
如何利用Java語(yǔ)言實(shí)現(xiàn)消息推送到手機(jī)app
首先APP后臺(tái)就得有這樣的輪詢程序,比如每次打開(kāi)app時(shí)觸發(fā),比如每隔10分鐘觸發(fā),每次觸發(fā)就調(diào)用下服務(wù)器端的服務(wù),服務(wù)端去拉取要推送的信息,或者知道對(duì)方的手機(jī)號(hào)或微信號(hào),那就直接調(diào)用短信接口或直接發(fā)送微信信息了。
極光推送服務(wù)是一款免費(fèi)的第三方推送消息的平臺(tái)。極光推送從整體來(lái)說(shuō)還不錯(cuò),具有以下優(yōu)勢(shì):
1、開(kāi)放注冊(cè),免費(fèi)向所有的開(kāi)發(fā)者開(kāi)放使用。
2、極光推送 - JPush SDK
JPush 是經(jīng)過(guò)考驗(yàn)的大規(guī)模 App 推送平臺(tái),每天推送消息量級(jí)為數(shù)百億條。 開(kāi)發(fā)者集成 SDK 后,可以通過(guò)調(diào)用 API 推送消息。同時(shí),JPush 提供可視化的 web 端控制臺(tái)發(fā)送通知,統(tǒng)計(jì)分析推送效果。
3、開(kāi)發(fā)者可以輕松地通過(guò)極光發(fā)送各個(gè)移動(dòng)平臺(tái)的系統(tǒng)通知,還可以在控制臺(tái)編輯多種富文本展示模板; 極光還提供自定義消息的透?jìng)?,客戶端接到消息?nèi)容后根據(jù)自己的邏輯自由處理。
4、7*24小時(shí)專人專線服務(wù):專屬安全團(tuán)隊(duì)支持,24 小時(shí)隨時(shí)響應(yīng),免除后顧之憂。
極光是一個(gè)不錯(cuò)的選擇,深圳市和訊華谷信息技術(shù)有限公司(極光 Aurora Mobile,納斯達(dá)克股票代碼:JG)成立于2011年,是中國(guó)領(lǐng)先的開(kāi)發(fā)者服務(wù)提供商,專注于為開(kāi)發(fā)者提供穩(wěn)定高效的消息推送、一鍵認(rèn)證以及流量變現(xiàn)等服務(wù),助力開(kāi)發(fā)者的運(yùn)營(yíng)、增長(zhǎng)與變現(xiàn)。
同時(shí),極光的行業(yè)應(yīng)用已經(jīng)拓展至市場(chǎng)洞察、金融風(fēng)控與商業(yè)地理服務(wù),助力各行各業(yè)優(yōu)化決策、提升效率。
如何用Java實(shí)現(xiàn)短信自動(dòng)發(fā)送功能?
Java實(shí)現(xiàn)短信自動(dòng)發(fā)送功能主要是用httpclient實(shí)現(xiàn)的,要有發(fā)短信的端口。
1、硬件設(shè)備是一個(gè)3G網(wǎng)卡;
2、軟件方面需要sun提過(guò)的java底層通信common包;
3、此外還需要第三方庫(kù)SMSLib,這個(gè)是開(kāi)源項(xiàng)目,主要用于實(shí)現(xiàn)java發(fā)短信的功能;
主要代碼如下:
HttpClient?client?=?new?HttpClient();
PostMethod?post?=?new?PostMethod(
"");
post.addRequestHeader("Content-Type",
"application/x-www-form-urlencoded;charset=utf-8");//?在頭文件中設(shè)置轉(zhuǎn)碼
NameValuePair[]?data?=?{?new?NameValuePair("sname",?"*****"),
new?NameValuePair("spwd",?"*****"),
new?NameValuePair("scorpid",?"*****"),
new?NameValuePair("sprdid",?"*****"),
new?NameValuePair("sdst",?"*****"),
new?NameValuePair("smsg",?"*****")?};
post.setRequestBody(data);
client.executeMethod(post);
Header[]?headers?=?post.getResponseHeaders();
int?statusCode?=?post.getStatusCode();
System.out.println("statusCode:"?+?statusCode);
for?(Header?h?:?headers)?{
System.out.println(h.toString());
}
String?result?=?new?String(post.getResponseBodyAsString().getBytes("utf-8"));
System.out.println(result);
post.releaseConnection();
Java源程序(.java文件)——java字節(jié)碼文件(.class文件)——由解釋執(zhí)行器(java.exe)將字節(jié)碼文件加載到j(luò)ava虛擬機(jī)(jvm)——字節(jié)碼文件(.class)就會(huì)在java虛擬機(jī)中執(zhí)行。
Java是一門面向?qū)ο缶幊陶Z(yǔ)言,不僅吸收了C++語(yǔ)言的各種優(yōu)點(diǎn),還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語(yǔ)言具有功能強(qiáng)大和簡(jiǎn)單易用兩個(gè)特征。Java語(yǔ)言作為靜態(tài)面向?qū)ο缶幊陶Z(yǔ)言的代表,極好地實(shí)現(xiàn)了面向?qū)ο罄碚摚试S程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程? ?。
Java具有簡(jiǎn)單性、面向?qū)ο?、分布式、健壯性、安全性、平臺(tái)獨(dú)立與可移植性、多線程、動(dòng)態(tài)性等特點(diǎn)? 。Java可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等
短信接口java哪個(gè)好用
市面上的短信服務(wù)平臺(tái)有很多家,可以從集成難度,并發(fā)量,到達(dá)率,價(jià)格這些綜合指標(biāo)考核。
短信服務(wù)平臺(tái)的價(jià)格是由您驗(yàn)證碼所針對(duì)的行業(yè),以及發(fā)送量來(lái)定的,一般量越多價(jià)格就越低,市面上通常是0.05-0.06元/條,極光短信0.045元/條,倆行代碼就可以快速集成,三網(wǎng)通道均可接入,支持10億級(jí)并發(fā)訪問(wèn),具有高到達(dá)率,高穩(wěn)定性,極光短信已服務(wù)于32萬(wàn)開(kāi)發(fā)者,可以接入試用一下。
極光專注于為移動(dòng)應(yīng)用開(kāi)發(fā)者提供穩(wěn)定高效的消息推送、即時(shí)通訊、統(tǒng)計(jì)分析、社會(huì)化組件和短信等開(kāi)發(fā)者服務(wù)?;诤A繑?shù)據(jù)和洞察積累,極光已將業(yè)務(wù)拓展至大數(shù)據(jù)服務(wù)領(lǐng)域,包括精準(zhǔn)營(yíng)銷(極光效果通)、金融風(fēng)控、市場(chǎng)洞察以及商業(yè)地理服務(wù)(極光iZone)。極光將繼續(xù)借助人工智能與機(jī)器學(xué)習(xí)為移動(dòng)大數(shù)據(jù)賦能,致力于為社會(huì)和各行各業(yè)提高運(yùn)營(yíng)效率,優(yōu)化決策制定。
分享文章:java極光短信代碼 java集成極光推送
轉(zhuǎn)載注明:http://www.dlmjj.cn/article/doscpcd.html