package com.util.sms;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.Reader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
public class SMSSenderModem {
/**
* 使用短信猫发短信,实际上就是模拟浏览器向一个服务端发送请求(装有短信猫的服务端接收到该请求,会调用短信猫的发短信功能进行发送短信,另外可以配置接收请求的地址)
* @param sendURL 短信猫URL
* @param mobile 手机号码
* @param message 发送内容
* @return flag 状态码
*/
public static int sendMessage(String sendURL, String mobile, String message) {
int flag = -1;
URL url = null;
HttpURLConnection conn = null;
try {
// 构造好这个URL对象,参数就是你要通信的servlet地址,实际测试的时候,这个URL可以从Properties文件中取得,以增加灵活性
url = new URL(sendURL);
// 打开,创建Connection对象
conn = (HttpURLConnection) url.openConnection();
// 传送送据
String userContent = "PhoneNumber=" + mobile + "&TEXT=" + URLEncoder.encode(message, "utf-8");
// 请求方式为POST
conn.setRequestMethod("POST");
// 一定要设为true,因为要发送数据
conn.setDoOutput(true);
// 一定要设为true,因为要接收数据
conn.setDoInput(true);
// 设置Http头参数
// conn.setRequestProperty("Content-Type","text/html");
conn.setRequestProperty("Cache-Control", "no-cache");
conn.setRequestProperty("Content-Length", String.valueOf(userContent.length()));
// 设置超时时间
conn.setConnectTimeout(30000);
// 设置读取时间
conn.setReadTimeout(30000);
conn.setRequestProperty("Connection", "close");
OutputStream out = conn.getOutputStream();
out.write(userContent.getBytes());
out.flush();
out.close();
int code = conn.getResponseCode();
System.out.println(code);
// 接收数据
InputStream in = conn.getInputStream();
Reader rData = new InputStreamReader(in);
int c;
StringBuffer strBuff = new StringBuffer();
while ((c = rData.read()) != -1)
strBuff.append(((char) c));
in.close();
if (code == 200 && strBuff.toString().indexOf("Message Submitted") != -1) {
System.out.println("发送成功");
flag = 0;
} else {
System.out.println("发送失败");
flag = -1;
}
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
/**
* 供其他Java调用的方法
* @param mobile 手机号码
* @param message 短信内容
* @return flag 状态码
*/
public static int sendSMS(String mobile, String message) {
// 短信猫URL
String sendURL = "http://192.168.10.83:8800/Send%20Text%20Message.htm";
//状态码
int flag = sendMessage(sendURL, mobile, message);
return flag;
}
}
java调用短信猫源码
最新推荐文章于 2017-08-15 14:23:10 发布