java发送短信--httpclient方式
最近头让我写个发送短信的java程序检测BI系统,检查数据库是否有异常发送,有则发送短信到头的手机里。这里我直说httpclient方式的get请求方式,并且已经有方式的短信的接口了,所以只要再加上参数即可实现,网上有好几种实现方式,我这个比较简单。
具体实现代码如下:
一、get方式
//发送短信Get请求方式
public void sendMSGByGet(String phone) throws HttpException, IOException{
//传递参数
String param = "username="+USR+"&password="+PSD+"&phone="+phone+"&message="+URLEncoder.encode(MSG, "GBK")+"&epid=105250&linkid=&subcode=123";//参数根据实际情况拼装
System.out.println(param);
HttpClient httpClient = new HttpClient();
HttpMethod get = new GetMethod(URLSTR+"?"+param); //get请求方式
get.releaseConnection();
httpClient.executeMethod(get);//发送
String response = get.getResponseBodyAsString(); //取得返回结果
System.out.println(response);
}
以上方式比较简单,需要注意的地方就是短信内容中文编码问题。
二、post方式(这种方式比较普遍)
实现代码如下:
//发送短信post方式
public void sendMSGByPost(String phone) throws HttpException, IOException{
HttpClient client = new HttpClient();
PostMethod post = new PostMethod(URLSTR);
post.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gbk");//在头文件中设置转码
NameValuePair[] data ={ //配置参数
new NameValuePair("username", USR),
new NameValuePair("password", PSD),
new NameValuePair("phone",phone),
new NameValuePair("message",MSG),
new NameValuePair("epid", EPID),
new NameValuePair("linkid",LINKID),
new NameValuePair("subcode",SUBCODE)
};
post.setRequestBody(data);
client.executeMethod(post);//发送请求
//以下为返回信息
Header[] headers = post.getResponseHeaders();
int statusCode = post.getStatusCode();//状态码
System.out.println("statusCode:"+statusCode);
for(Header h : headers)
{
System.out.println(h.toString());
}
String result = new String(post.getResponseBodyAsString().getBytes("gbk"));
System.out.println(result);
post.releaseConnection();
}
以上方式比较固定,其实很多都是用这种方式,有兴趣的可以试试中国网建的:http://www.smschinese.cn/api.shtml(各种代码示例)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!