java代碼發(fā)送信息 java代碼發(fā)布

java實(shí)現(xiàn)微信發(fā)送消息

net的我有 java的還沒(méi)看呢 給你說(shuō)說(shuō)原理 通過(guò)開發(fā)者id 或者關(guān)注者列表 然后通過(guò)用戶openid(用戶唯一標(biāo)示)向用戶發(fā)送客服消息 他這個(gè)通道是走的客服消息 ,前提是必須關(guān)注者主動(dòng)向公眾號(hào)發(fā)過(guò)消息 時(shí)限為24h

創(chuàng)新互聯(lián)專注于寶興企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計(jì),商城網(wǎng)站開發(fā)。寶興網(wǎng)站建設(shè)公司,為寶興等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站制作,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

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

發(fā)送短信的接口

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

開發(fā)文檔

從開發(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點(diǎn)吸煙 .ihuyi._106包, 以及眾多的類. 接下來(lá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)單起見, 這里我們只關(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í)際上很罕見.

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

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

1、使用第三方短信平臺(tái)服務(wù)商,接入短信服務(wù);

2、調(diào)用短信提交頁(yè)面發(fā)送請(qǐng)求;

3、服務(wù)器向第三方短信平臺(tái)提交發(fā)送請(qǐng)求;

4、短信平臺(tái)通過(guò)運(yùn)營(yíng)商將短信下發(fā)至用戶的手機(jī)上。

以下是秒賽短信平臺(tái)JAVA短信驗(yàn)證碼接口代碼示例

package test;

import java.io.IOException;

import java.io.UnsupportedEncodingException;

import java點(diǎn)虐 .URISyntaxException;

import java點(diǎn)虐 .URLEncoder;

import org.apache點(diǎn)抗 mons.httpclient.HttpClient;

import org.apache點(diǎn)抗 mons.httpclient.NameValuePair;

import org.apache點(diǎn)抗 mons.httpclient.methods.PostMethod;

import org.apache點(diǎn)抗 mons.lang3.StringUtils;

public class Apis {

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

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 {

// 賬號(hào)

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

// 密碼

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

// 修改為您要發(fā)送的手機(jī)號(hào),多個(gè)用,分割

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

// 設(shè)置您要發(fā)送的內(nèi)容

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

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

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

}

/**

* 發(fā)送短信

*

* @param account

* ? ? ? ? ? ?account

* @param pswd

* ? ? ? ? ? ?pswd

* @param mobile

* ? ? ? ? ? ?手機(jī)號(hào)碼

* @param content

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

*/

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 提交響應(yīng)

*/

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實(shí)現(xiàn)發(fā)送手機(jī)短信

1.通過(guò)移動(dòng)或聯(lián)通短信網(wǎng)關(guān)發(fā)送短信,這需要通信服務(wù)商給你開通短信端口,發(fā)送短信協(xié)議各個(gè)服務(wù)商都不一樣,比如移動(dòng)的是cmpp2,cmpp3等

2.第二種是通過(guò)硬件設(shè)備發(fā)送短信,這個(gè)需要你有專門的硬件設(shè)備,比如一個(gè)上網(wǎng)卡或者一個(gè)手機(jī)模塊,通過(guò)調(diào)用com遵從一些協(xié)議發(fā)送短信

單純靠寫代碼是無(wú)法發(fā)短信的,至少要有一個(gè)WEBSERVICE接口或者硬件接口。

文章題目:java代碼發(fā)送信息 java代碼發(fā)布
文章鏈接:http://muchs.cn/article40/ddiidho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)網(wǎng)站排名、云服務(wù)器品牌網(wǎng)站建設(shè)、微信公眾號(hào)、靜態(tài)網(wǎng)站

廣告

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

成都網(wǎng)站建設(shè)公司