当前位置:首页 » 编程语言 » java批量发送短信

java批量发送短信

发布时间: 2024-10-13 01:27:00

Ⅰ 用java调用短信接口给手机发送短信怎么写代码接口已经有了,是一个url.

那你要做的就是向这个URL发送数据就好,给个例子:

publicclassHttptest1{
8
9publicstaticvoidmain(String[]args){
10
11URLurl=null;
12HttpURLConnectionconn=null;
13OutputStreamoutStream=null;
14InputStreaminStream=null;
15
16try{
17url=newURL("http://219.233.89.7:8090/cgi-bin/mailinterface");
18conn=(HttpURLConnection)url.openConnection();
19conn.setDoOutput(true);
20conn.setDoInput(true);
21
22StringsendXml="<?xmlversion="1.0"encoding="UTF-16"?><!DOCTYPESigMailCommandSYSTEM"SigMail.dtd">";//XML数据
23sendXml+="<SigMailCommandName="checkuser"><ParamName="domainname">test.com.cn</Param>";
24sendXml+="<ParamName="username">admin</Param></SigMailCommand>";
25
26outStream=conn.getOutputStream();
27
28//准备通过CONN对象写入XML数据
29BufferedWriterbw=newBufferedWriter(newjava.io.OutputStreamWriter(outStream,
30"UTF-16"));
31bw.write(sendXml);
32bw.flush();
33bw.close();
34
35//DataOutputStreamdataOutStream=newDataOutputStream(outStream);
36//dataOutStream.writeChars(xml);
37//dataOutStream.flush();
38//dataOutStream.close();
39
40
41//准备通过CONN对象读取返回的XML数据
42
43inStream=conn.getInputStream();
44StringBufferreturnXml=newStringBuffer("");
45BufferedReaderrd=newBufferedReader(newInputStreamReader(inStream,
46"UTF-16"));
47for(Stringline=null;(line=rd.readLine())!=null;){
48returnXml.append(line);
49}
50System.out.println(returnXml.toString());
51rd.close();
52}catch(IOExceptionex){
53ex.printStackTrace();
54}finally{
55try{
56if(outStream!=null)
57outStream.close();
58if(inStream!=null)
59inStream.close();
60if(conn!=null)
61conn.disconnect();
62}catch(IOExceptione){
63//TODO自动生成catch块
64e.printStackTrace();
65}
66}
67
68}
69
70}

Ⅱ java短信验证码要注意什么问题

1、时间间隔

java短信验证码并不是你请求几次都可以的。一般来讲在同一个时刻同一部手机发送的同一个请求,一般次数上不会超过三次,时间间隔上会有一分钟的限定,这是为了避免有些用户频繁无效的胡乱点击或恶意捣乱,影响正常的系统工作,让有需求的朋友无法正常完成验证。

2、次数限制

如果遇到有些用户总是大量的向后台发送请求,次数过多,频率过大,同一个手机号一天的时间里,超过了一定次数的请求数,那么该手机号会被认定为一个危险号,有可能会被系统列入黑名单之中,使得下次将无法实现请求验证。

3、错误限定

当用户对于同个类型的需求进行不断的验证,比如说更改密码、注册时发送的java短信验证码,在输入时的错误次数也是有限制的。因为正常、规范的短信验证码的发送只用很短时间用户就可以准确接收到,但如果用户总是不能正确输入,次数超过了三次的话,就会让其验证码无效,避免有人恶意尝试输入,确保用户的账户安全。

短信验证码在我们日常生活中扮演了及其重要的地位,是保障我们现在互联网信息的主流安全手段,因此在开发java短信验证码以及后期的维护中,都不可忽略其安全性。java短信验证码接入广东第五大道还可以,提供短信验证码测试。

Ⅲ 如何用Java实现短信自动发送功能

方法一:
1.web.xml中配置listener
<listener>
<listener-class>
cn.com.jxlife.shs.web.action.csinquiry.surrender.MyListener
</listener-class>
</listener>
2.创建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.schele(new MyTask(), 0, 3*60*1000);
//3分钟
//timer.schele(new MyTask(), 0, 3*60*1000);
//在1秒后执行此任务,每次间隔2秒
//timer.schele(new MyTask(), 1000, 2000);
}

@Override
public void contextDestroyed(ServletContextEvent sce) {
timer.cancel();
}

}
3.创建启动的类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 下实现定时工作的调度框架quartz
· 1。从http://quartz-scheler.org/下载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("数据备份任务启动");
System.out.println("...");
System.out.println("数据备份任务完成");
}
}

· 4。剩余的工作就都在spring xml文件里完成了
<!-- 被调度的bean -->
<bean id="job1" class="com.machome.quartz.CustomJob1"></bean>

<!-- 定义任务对象 -->
<bean id="jobtask1"
class="org.springframework.scheling.quartz.">
<!-- 被调度的bean -->
<property name="targetObject">
<ref bean="job1" />
</property>
<!-- 被调度的bean中的被调度的方法 -->
<property name="targetMethod">
<value>onTimeWork</value>
</property>
</bean>

<!-- 定义触发对象 -->
<bean id="trigger1"
class="org.springframework.scheling.quartz.CronTriggerBean">

<!-- 任务对象 -->
<property name="jobDetail">
<ref bean="jobtask1" />
</property>

<!-- cron表达式 -->
<property name="cronExpression">
<value>10,15,20,25,30,35,40,45,50,55 * * * * ?</value>
</property>
</bean>

<!-- 调度对象 -->
<!-- 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
<bean id="scheler" lazy-init="false"
class="org.springframework.scheling.quartz.SchelerFactoryBean">

<!-- 触发对象 -->
<property name="triggers">
<list>
<ref bean="trigger1" />
</list>
</property>
</bean>

· 5。 将spring 项目部署到TOMCAT或JBOSS服务器上
deploy项目
重启TOMCAT server

· 6。看结果:

cron表达式参考:Quartz的cron表达式

Ⅳ java 异步发送短信,异步怎么实现

java 异步发送短信,异步实现:
1,使用spring框架的异步注解 @Async ,底层应该是一个线程。
2,简单粗暴的方式:开一个线程
new Thread(new Runnable() {
public void run() {
//发送短信
}
}).start();
当然也可以高级一点,使用线程池。
3,更高端一点:使用消息队列MQ

Ⅳ java怎么实现群发短信的功能

JAVA实现短信群发的步骤:

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

2、调用短信提交页面发送请求;

3、服务器向第三方短信平台提交发送请求;

4、短信平台通过运营商将短信下发至用户的手机上。

以下是秒赛短信平台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 {

// 短信发送接口的http地址,请咨询客服

private static String url = “xxxxxxxxxxxxxxxxxxxxxxxxxxxx”;

// 编码格式。发送编码格式统一用UTF-8

private static String ENCODING = “UTF-8”;

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

// 账号

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

// 密码

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

// 修改为您要发送的手机号,多个用,分割

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

// 设置您要发送的内容

String msg = “【秒赛科技】您的验证码是:1234”;

// 发短信调用示例

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

}

/**

* 发送短信

*

* @param account

* account

* @param pswd

* pswd

* @param mobile

* 手机号码

* @param content

* 短信发送内容

*/

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(“proct”, “”) };

return doPost(url, data);

}

/**

* 基于HttpClient的post函数

* PH

* @param url

* 提交的URL

*

* @param data

* 提交NameValuePair参数

* @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;

}

}

热点内容
安卓和ios对接有什么不同 发布:2024-11-24 11:49:22 浏览:312
c语言读取文件并输出 发布:2024-11-24 11:42:45 浏览:622
打开u盘拒绝访问 发布:2024-11-24 11:32:07 浏览:488
数据库缩略 发布:2024-11-24 10:54:18 浏览:598
uniqidphp 发布:2024-11-24 10:54:15 浏览:659
linux设备驱动程序pdf 发布:2024-11-24 10:40:26 浏览:805
金盾pdf加密提取 发布:2024-11-24 10:37:01 浏览:810
sqlserver2005报表 发布:2024-11-24 10:33:23 浏览:585
直男Qq密码一般会设成什么 发布:2024-11-24 10:28:00 浏览:199
苹果怎么传照片蓝牙到安卓 发布:2024-11-24 10:21:04 浏览:857