真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java代碼給qq發(fā)短信 java調(diào)用發(fā)送消息

java 如何發(fā)送短信

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

我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、松原ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的松原網(wǎng)站制作公司

"mobile_phone=" + mobile_phone +

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

"subcode=" + subcode;

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

如何用Java實(shí)現(xiàn)短信自動(dòng)發(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);

//設(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發(fā)送qq郵件

方法:

1.前提準(zhǔn)備工作:

首先,郵件的發(fā)送方要開(kāi)啟POP3 和SMTP服務(wù)--即發(fā)送qq郵件的賬號(hào)要開(kāi)啟POP3 和SMTP服務(wù)

2.開(kāi)啟方法:

登陸qq郵箱

3.點(diǎn)擊 設(shè)置

4.點(diǎn)擊—-賬戶

5.找到:POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務(wù) —點(diǎn)擊開(kāi)啟

6.送短信 —–點(diǎn)擊確定

7.稍等一會(huì),很得到一個(gè)授權(quán)碼! –注意:這個(gè)一定要記住,一會(huì)用到

8.點(diǎn)擊保存修改 —OK 完成

9.java 測(cè)試代碼:

package cn.cupcat.test;

import java.util.Properties;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.AddressException;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

import javax.mail.internet.MimeMessage.RecipientType;

public class SendmailUtil {

public static void main(String[] args) throws AddressException, MessagingException {

Properties properties = new Properties();

properties.put("mail.transport.protocol", "smtp");// 連接協(xié)議

properties.put("mail.smtp.host", "smtp.qq.com");// 主機(jī)名

properties.put("mail.smtp.port", 465);// 端口號(hào)

properties.put("mail.smtp.auth", "true");

properties.put("mail.smtp.ssl.enable", "true");//設(shè)置是否使用ssl安全連接 ---一般都使用

properties.put("mail.debug", "true");//設(shè)置是否顯示debug信息 true 會(huì)在控制臺(tái)顯示相關(guān)信息

//得到回話對(duì)象

Session session = Session.getInstance(properties);

// 獲取郵件對(duì)象

Message message = new MimeMessage(session);

//設(shè)置發(fā)件人郵箱地址

message.setFrom(new InternetAddress("123456789@qq.com"));

//設(shè)置收件人地址 message.setRecipients( RecipientType.TO, new InternetAddress[] { new InternetAddress("987654321@qq.com") });

//設(shè)置郵件標(biāo)題

message.setSubject("這是第一封Java郵件");

//設(shè)置郵件內(nèi)容

message.setText("內(nèi)容為: 這是第一封java發(fā)送來(lái)的郵件。");

//得到郵差對(duì)象

Transport transport = session.getTransport();

//連接自己的郵箱賬戶

transport.connect("123456789@qq.com", "vvctybgbvvophjcj");//密碼為剛才得到的授權(quán)碼

//發(fā)送郵件 transport.sendMessage(message, message.getAllRecipients());

}

}

10.運(yùn)行就會(huì)發(fā)出郵件了。。。。

下面是我收到郵件的截圖,當(dāng)然我把源碼中的郵件地址都是修改了,不是真實(shí)的,你們測(cè)試的時(shí)候,可以修改能你們自己的郵箱。最后,祝你也能成功,如果有什么問(wèn)題,可以一起討論!

注意事項(xiàng)

得到的授權(quán)碼一定要保存好,程序中要使用

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

發(fā)送短信的接口

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

開(kāi)發(fā)文檔

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

生成客戶端代碼

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

wsimport -keep

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

定義接口

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

Sms.java

public?interface?Sms?{

/**

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

*?

*?@param?mobile?手機(jī)號(hào)

*?@param?message?短信內(nèi)容

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

*/

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

}

這個(gè)接口很簡(jiǎn)單, 只有一個(gè)方法. 這個(gè)方法用來(lái)發(fā)送短信.

同步發(fā)送短信

接下來(lái)我們首先實(shí)現(xiàn)一個(gè)同步發(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)絡(luò)通信, 因此sendMessage方法可能會(huì)有一些延遲. 為了改善用戶體驗(yàn), 我們可以使用異步發(fā)送短信的方法. 原理很簡(jiǎn)單: 如果用戶請(qǐng)求發(fā)送短信, 我們不是直接調(diào)用IhuyiSmsImpl的sendMessage方法, 而是將請(qǐng)求保存起來(lái)(生產(chǎn)者), 然后告訴用戶: 短信發(fā)送成功. 之后有若干個(gè)消費(fèi)者取出任務(wù), 調(diào)用sendMessage方法發(fā)送短信.

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

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("提交任務(wù)時(shí)發(fā)生錯(cuò)誤"?+?e);

return?0;

}

return?-1;

}

public?void?destroy(){

try{

executorService.shutdown();

}

catch(Exception?e){}

}

}

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

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

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

使用這段代碼發(fā)送短信也很簡(jiǎn)單, 直接new一個(gè)對(duì)象, 設(shè)置好賬號(hào)和密碼就可以發(fā)送短信了.

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

如何用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)用程序等


網(wǎng)站欄目:java代碼給qq發(fā)短信 java調(diào)用發(fā)送消息
瀏覽地址:http://weahome.cn/article/dooshdc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部