java 根据接口发送手机短信

时间:2021-11-29 19:00:45

我做的手机发送短信,是根据别人提供的接口来做的,接口内容如下:

短信平台接口说明

1、 概述

1.1 接口描述

各个系统在发送短信时需调用本接口。

1.2 接口协议和数据格式

短信平台接口采用HTTP传输协议,数据格式为XML,编码为UTF-8

1.3 接口地址

远程服务调用接口地址:http://10.0.7.40:8080/smsHttpServlet.servlet

2、 接口详细说明

2.1 发送短信请求的数据内容

名称

字段

数据类型

非空

备注

业务编码

syscode

varchar2 (10)

非空

请向信息中心索取

部门编码

depcode

varchar2 (50)

非空

填写:00000000

部门名称

depname

varchar2 (50)

非空

填写:安华农业保险股份有限公司

密码

password

varchar2 (50)

非空

请向信息中心索取,需MD5加密

接收人手机号

mobile

varchar2 (11)

非空

1开头的11位手机号

短信内容

content

varchar2 (500)

非空

每个英文或汉字为1个单位,最多500

2.2 发送短信请求XML格式样例

<?xml version="1.0" encoding="UTF-8"?>

<xmlRequest>

  <header>

<syscode>(业务编码请向信息中心索取)</syscode>

   <depcode>00000000</depcode>

<depname>安华农业保险股份有限公司</depname>

<password>(密码请向信息中心索取,请传输MD5加密后的密码)</password>

  </header>

<body>

    <sms>

  <mobile>接收人手机号</mobile>

  <content>短信内容</content>

    </sms>

</body>

</xmlRequest>

2.3 获取发送结果的返回数据内容

名称

字段

数据类型

非空

备注

业务编码

recode

varchar2 (10)

非空

成功:000,失败:001

2.4 获取发送结果返回XML格式样例

<?xml version="1.0" encoding="UTF-8"?>

<xmlResponse>

<header>

<recode>000</recode>

</header>

</xmlResponse>

3、 注意事项

1)发送短信请求中的业务编码和密码请向信息中心索取,并注意妥善保管,切勿泄露;

2)短信内容中禁止使用各类敏感词语;

3)短信内容中请不要使用“测试”二字,否则会出现接口返回发送成功的结果,而该短信实际上并未发出的情况;

4)发送短信为收费业务,请在测试时注意节约使用。

二、我自己写的代码如下:

首先需要把commons-httpclient-3.0.jar包导入到lib目录下;

其次写调用方法:

/**
  * 发送单个短信
  */
 public String sendMessage(){
  try {              
      StringBuffer bufxml = new StringBuffer();
      bufxml.append("<?xml version=");
      bufxml.append("\"1.0\"");
      bufxml.append(" encoding=");
      bufxml.append("\"UTF-8\"");
      bufxml.append("?><xmlRequest><header><syscode>");
      bufxml.append("业务编码");
      bufxml.append("</syscode><depcode>");
      bufxml.append("00000000");
      bufxml.append("</depcode><depname>安华农业保险股份有限公司</depname><password>密码</password></header><body><sms><mobile>");
      bufxml.append(手机号);
      bufxml.append("</mobile><content>");
      bufxml.append(短信内容);
      bufxml.append("</content></sms></body></xmlRequest>");
      
      PostMethod post = new PostMethod("
http://10.0.7.40:8080/smsHttpServlet.servlet");//请求地址
      //这里添加xml字符串
      post.setRequestBody(bufxml.toString());
      
      // 指定请求内容的类型
      post.setRequestHeader("Content-type", "text/xml; charset=UTF-8");
      HttpClient httpclient = new HttpClient();//创建 HttpClient 的实例
      int result;
      try {
       result = httpclient.executeMethod(post);
       System.out.println("Response status code: " + result);//返回200为成功
       System.out.println("Response body: ");
       System.out.println(post.getResponseBodyAsString());//返回的内容
       String responseXml = post.getResponseBodyAsString();
       if(!"".equals(responseXml) && responseXml != null  ){
        if(responseXml.contains("000")){
         system.out.println("发送成功");

        }else if(responseXml.contains("001")){
         system.out.println("发送失败");        }
       }
       post.releaseConnection();//释放连接
      } catch (HttpException e) {
      system.out.println("发送失败");        

           e.printStackTrace();
      } catch (IOException e) {
     system.out.println("发送失败");        

       e.printStackTrace();
      }

  } catch (Exception e) {
   e.printStackTrace();
   this.message = this.getFailMessage("发送失败");
  }
  return "json";
 }