Java短信发送接口

 1 public class SendMessageUtil {
 2     // 短信发送相关数据
 3     private static String strUserName = "";
 4     private static String strPassword = "";
 5     public static DynamicClientFactory dcf = null;
 6     public static org.apache.cxf.endpoint.Client client = null;
 7     static {
 8         dcf = DynamicClientFactory.newInstance();
 9         client = dcf.createClient("");
10     }
11     
12     
13     private static int post(String path, String json) throws Exception {
14         HttpClient client = new HttpClient();
15         PostMethod postMethod = new PostMethod(path);
16         postMethod.setRequestHeader("Content-Type", "application/json");
17         byte[] requestBytes = json.getBytes("utf-8"); // 将参数转为二进制流
18         InputStream inputStream = new ByteArrayInputStream(requestBytes, 0, requestBytes.length);
19         RequestEntity requestEntity = new InputStreamRequestEntity(inputStream,
20                 requestBytes.length, "application/json; charset=utf-8"); // 请求体
21         postMethod.setRequestEntity(requestEntity);
22         int state = client.executeMethod(postMethod);
23         return state;
24     }
25 
26     /**
27      * 异步发送短信
28      * 
29      * @param strPhoneNos ,手机号码,多个时须采用;隔开。
30      * @param strMsg      发送的短信内容。
31      * @author 012169 2013-9-12 下午2:32:04
32      */
33     public static void sendMsg(String strPhoneNos, String strMsg) {
34         ClientCallback callback = new ClientCallback();
35         int intReply = 0;
36 
37         try {
38 
39             client.invoke(callback, "sendMsg", new Object[] { strPhoneNos, strMsg, strUserName, strPassword });
40             Object[] replys = callback.get();
41             for (Object o : replys) {
42                 intReply = NumUtils.objectConvertToInt(o);
43             }
44             // intReply,0:用户名不存在,-1:用户密码错误,02:发送条数超本月短信上限,<0:发送失败,>0:发送成功
45         } catch (Exception e) {
46             log.error("发送错误:" + e.getMessage() + ";返回值:" + intReply + strPhoneNos + strMsg);
47         }
48     }
49 
50     /**
51      * 同步发送短信
52      * 
53      * @param strPhoneNos ,手机号码,多个时须采用;隔开。
54      * @param strMsg      发送的短信内容。
55      * @author 012169 2013-9-12 下午2:32:04
56      */
57     public static void sendMsgBySynchronously(String strPhoneNos, String strMsg) {
58         Object[] replys = null;
59         int intReply = 0;
60 
61         try {
62             replys = client.invoke("sendMsg", new Object[] { strPhoneNos, strMsg, strUserName, strPassword });
63 
64             for (Object o : replys) {
65                 intReply = NumUtils.objectConvertToInt(o);
66             }
67 
68             // intReply,0:用户名不存在,-1:用户密码错误,02:发送条数超本月短信上限,<0:发送失败,>0:发送成功
69 
70         } catch (Exception e) {
71             log.error("发送错误:" + e.getMessage() + ";返回值:" + intReply + strPhoneNos + strMsg);
72         }
73 
74     }
75 }

猜你喜欢

转载自www.cnblogs.com/zeevy/p/12556707.html