java短信接口开发完整项目_java项目接入第三方短信接口
1.根据第三方短信接口提供的例子进行参考接入
package com.jc.cus.utils;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpConnectionManagerParams;
import java.io.*;
public class HttpClientUtil
{
private static HttpClientclient =null;
// 构造单例
private HttpClientUtil()
{
MultiThreadedHttpConnectionManager httpConnectionManager =new MultiThreadedHttpConnectionManager();
HttpConnectionManagerParams params =new HttpConnectionManagerParams();
// 默认连接超时时间
params.setConnectionTimeout(60000);
// 默认读取超时时间
params.setSoTimeout(60000);
// 默认单个host最大连接数
params.setDefaultMaxConnectionsPerHost(200);// very important!!
// 最大总连接数
params.setMaxTotalConnections(500);// very important!!
httpConnectionManager.setParams(params);
client =new HttpClient(httpConnectionManager);
client.getParams().setConnectionManagerTimeout(3000);
// client.getParams().setIntParameter("http.socket.timeout", 10000);
// client.getParams().setIntParameter("http.connection.timeout", 5000);
}
private static class ClientUtilInstance
{
private static final HttpClientUtilClientUtil =new HttpClientUtil();
}
public static HttpClientUtil getInstance()
{
return ClientUtilInstance.ClientUtil;
}
/**
* 发送http GET请求,并返回http响应字符串
*
* @param urlstr
* 完整的请求url字符串
* @return
*/
public String doGetRequest(String urlstr) {
String response ="";
HttpMethod httpmethod =new GetMethod(urlstr);
try {
int statusCode =client.executeMethod(httpmethod);
InputStream _InputStream =null;
if (statusCode == HttpStatus.SC_OK) {
_InputStream = httpmethod.getResponseBodyAsStream();
}
if (_InputStream !=null) {
response = GetResponseString(_InputStream,"UTF-8");
}
}catch (HttpException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}finally {
httpmethod.releaseConnection();
}
return response;
}
public String doPostRequest(String postUrl) {
String response ="";
PostMethod postMethod =new PostMethod(postUrl);
try {
int statusCode =client.executeMethod(postMethod);
if (statusCode == HttpStatus.SC_OK) {
InputStream _InputStream =null;
if (statusCode == HttpStatus.SC_OK) {
_InputStream = postMethod.getResponseBodyAsStream();
}
if (_InputStream !=null) {
response = GetResponseString(_InputStream,"UTF-8");
}
}
}catch (HttpException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}finally {
postMethod.releaseConnection();
}
return response;
}
/**
*
* @param _InputStream
* @param Charset
* @return
*/
public String GetResponseString(InputStream _InputStream, String Charset) {
String response ="";
try {
if (_InputStream !=null) {
StringBuffer buffer =new StringBuffer();
InputStreamReader isr =new InputStreamReader(_InputStream, Charset);
Reader in =new BufferedReader(isr);
int ch;
while ((ch = in.read()) > -1) {
buffer.append((char) ch);
}
response = buffer.toString();
buffer =null;
}
}catch (Exception e) {
response = response + e.getMessage();
e.printStackTrace();
}
return response;
}
public static void main(String[] args) {
String url ="http://sdk4rptws.eucp.b2m.cn:8080/sdkproxy/sendtimesms.action?cdkey=2SDK-EMY-6688-AAAAA&password=******&phone=1333333333,13444444444&message=单发即时短信测试&addserial=10086&sendtime=20090101101010";
// System.out.println(doGetRequest(url));
}
}
上面的例子用到了单例模式和内部类的方法实现的,
在自己项目的代码中中需要先查询出 上面main方法中url需要的字段类型,然后进行拼接成上面的url,请求这个url就可以了,
请求过后看下后台输出的内容,如果返回值为0,则短信发送成功,下面是我自己的部分代码为例:
public String doNoteBook(HttpServletRequest request, HttpServletResponse response)
{
try
{
//查询出正在举办活动的本期客户的房间号room为空的电话号码
List phones =customerMapper.getCustomerPhoneByPeriodsAndRoom();
//String messages = request.getParameter("message");
String messages ="尊敬的";
String messag =",您的房间号为:";
//取到的中文转码
messages = URLEncoder.encode(messages,"utf-8");
messag = URLEncoder.encode(messag,"utf-8");
for (PhoneVO phone: phones)
{
String customerName = phone.getName();
String name = URLEncoder.encode(customerName,"utf-8");
String phonenum ="phone="+phone.getPhone();
String message ="message="+messages+name+messag+phone.getRoom();
String url =notePaths+cdkey+"&"+password+"&"+phonenum+"&"+message;
//System.out.println("*****************="+url);
String responseString = HttpClientUtil.getInstance().doGetRequest(url);
//可以在此处根据返回值进行判断
System.out.println("*****************="+responseString);
}
}catch (Exception e)
{
e.printStackTrace();
}
return null;
}
经测试有效
java短信接口开发完整项目_java项目接入第三方短信接口相关推荐
- 【源码+教程】Java桌球游戏_Java初级项目_Java练手项目_Java项目实战_Java游戏开发
今天分享的Java开源游戏项目是桌球游戏,初学者也可以用来练习喔~课程详细讲解了一个桌球游戏的编写思路和流程,即使你刚学Java没多久,也可以跟随该教程视频完成属于你自己的桌球游戏!同时,还可以加深和 ...
- 国际web短信软件平台开发搭建后台功能|移讯云短信系统
国际web短信软件平台开发搭建后台功能|移讯云短信系统 特色功能模块功能列表 1:通道路由模块 1.1:通道地区设置 1.2:通道关键词分流 1.3:白名单独立通道设置 1.4:通道分组设置 1.5: ...
- java实践项目_Java项目开发实践
第章项目开发基础() 项目开发实训目标() 实训知识目标() 实训能力目标() 实训素质目标() 项目开发技术() 图形用户界面编程技术() 输入输出编程技术() 网络编程技术() 数据结构编程技术( ...
- java集成开发工具项目_Java项目开发(一)-不借助集成工具创建Java项目并编写编译执行脚本...
java-project(项目根目录)|--src| |--main(主目录)| | |--java(存放项目的.java文件)| | | |--com(包目录)| | | | |--mycompan ...
- java servlet接口开发_servlet三种实现方式之一实现servlet接口
servlet有三种实现方式: 1.实现servlet接口 2.继承GenericServlet 3.通过继承HttpServlet开发servlet 第一种示例代码如下(已去掉包名): import ...
- java高级框架应用开发案例教程_Java高级框架应用开发案例教程:struts2+spring+hibernate PDF...
资源名称:Java高级框架应用开发案例教程:struts2+spring+hibernate PDF 第1章 struts+spring+hibernate概述 1.1 框架概述 1.2 struts ...
- 短视频APP开发:我想打造新闻资讯短视频APP
现在,还有多少人喜欢看新闻了? 六十年代,新闻是人们看世界的唯一窗口,八十年代,看新闻是全家人的集体活动,现在,短视频成了人们的手中宝,新闻,不是年轻人的范儿. 当抖音引爆全球,鸡汤灌满朋友圈,报纸逐 ...
- 【开源OA项目】基于环信IM开发完整的企业通讯解决方案-Dolores
我们公司想自己开发一套IM系统应该从哪里开始呢? 企业通讯录怎么保持同步呢? 企业通讯录的权限管理应该怎么做? 常常会听到身边亦或者网上的朋友讨论诸如此类的问题,正好前段时间我比较有时间,就决定做一套 ...
- java项目:永和大王项目_Java项目:书评
java项目:永和大王项目 本文是关于这本书的 Peter Verhas撰写的Java Projects Second Edition 我去年写的 这样一篇文章的目的通常是为了促进这本书的销售. 在这 ...
- java ssm项目_JAVA项目:逝去的SSM
SSM(Spring+SpringMVC+MyBatis) SSM(Spring+SpringMVC+MyBatis)框架集由Spring.SpringMVC.MyBatis三个开源框架整合而成,常作 ...
最新文章
- 星空下的痕迹 Jenkins学习(四)----------windows下Publish over FTP插件应用
- Python小白的数学建模课-18.最小生成树问题
- 7个习惯可以改变一个人和他的一生
- 递归函数合式分解python_学习python的day10之递归与内置函数
- 排序算法之六 堆排序(C++版本)
- 例3.6 二叉搜索树 - 九度教程第36题(二叉排序树)
- mysql用sqluldr2导出_使用sqluldr2将oracle大量表数据快速高效导出
- premiere软件的使用(快速入门,迅速了解常用功能、常用快捷键、常用插件)——wsdchong
- WPS:添加公式后,行间距变宽的解决方法
- Windows如何设置夜间模式(护眼模式)超简单
- c语言FD_SET头文件,select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
- 【python学习笔记】爬虫总遇到的:'latin-1' codec can't encode character...
- php开发工具PhpStorm新版本V2022.1 新增功能亮点介绍
- 【算力网络】算力网络的技术创新——绿色与安全关键技术
- 股票期货化数据文档大全覆盖国内6大易的历史数据和实时行情
- 实施工程师面常见问题
- 如何将电脑文件同步备份到u盘或移动硬盘?
- 等我怎么怎了,就如何如何
- 杰理之统一音量控制【篇】
- docking 分屏