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

Python014

用Java调用短信接口给手机发送短信怎么写代码??接口已经有了,是一个url.,第1张

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

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( " http://219.233.89.7:8090/cgi-bin/mailinterface " )

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数据     

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              // 准备通过CONN对象写入XML数据 

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              // 准备通过CONN对象读取返回的XML数据 

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 自动生成 catch 块 

64                  e.printStackTrace()

65             } 

66         } 

67  

68     } 

69  

70 }

方法一:

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.schedule(new MyTask(), 0, 3*60*1000)

//3分钟

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

//在1秒后执行此任务,每次间隔2秒

//timer.schedule(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-scheduler.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.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

<!-- 被调度的bean -->

<property name="targetObject">

<ref bean="job1" />

</property>

<!-- 被调度的bean中的被调度的方法 -->

<property name="targetMethod">

<value>onTimeWork</value>

</property>

</bean>

<!-- 定义触发对象 -->

<bean id="trigger1"

class="org.springframework.scheduling.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="scheduler" lazy-init="false"

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

<!-- 触发对象 -->

<property name="triggers">

<list>

<ref bean="trigger1" />

</list>

</property>

</bean>

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

deploy项目

重启TOMCAT server

· 6。看结果:

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