想做个通用的短信接口,应该怎么设计好呢

soyestrellafortuna 2013-04-12 03:15:08
在网上找了几个平台。发现发送短信请求的参数各不相同,肯定还有其他的短信平台

第一种:整个信息包含在<END></END>这个标签体中,标签全部大写,包含用户名和密码
http://www.abc.com:8080/<END><COMMAND>S058</COMMAND><REGISTRYCODE>101100-TEST-3456</REGISTRYCODE><PWD>12</PWD><TIM></TIM><CONTENT>短信内容</CONTENT><SMSID>1</SMSID><MOBILE>13867507888</MOBILE><SMSID>2</SMSID><MOBILE></END>

第二种:这种较为普遍 地址后传递对应的参数即可
http://http.abc.com/tx/?uid=用户账号&pwd=MD5密码&mobile=号码&content=内容

第三种: 这种与第二种相同,只是对应的参数名不相同
http://hl.com.cn/sms/push_mt.jsp?cpid=BAIDU&cppwd=123456&phone=13811978407&spnumber=&msgcont=测试&extend=01234


我想问一下各位。这样的通用接口应该如何设计比较好。今后只要在配置文件中配置了地址和用户名与密码就可以正常使用。

以上这几种情况对应的字段名各不相同
如账户名分别为REGISTRYCODE、uid、cpid.. 并且第一种与后面的写法也不相同。如何设计才能有良好的复用性呢?

...全文
264 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
soyestrellafortuna 2013-04-12
  • 打赏
  • 举报
回复
多写判断吗?我觉得这样写,后续维护很麻烦的,有更好的办法吗?
String url = "";
if(选择第一个){
  url = "http://http.abc.com/tx/?uid=用户账号&pwd=MD5密码&mobile=号码&content=内容";
} else if (选择第二个){
  url = "http://hl.com.cn/sms/push_mt.jsp?cpid=BAIDU&cppwd=123456&phone=13811978407&spnumber=&msgcont=测试&extend=01234";
} else if (选择第三个) {
  url = "http://www.abc.com:8080/<END><COMMAND>S058</COMMAND><REGISTRYCODE>101100-TEST-3456</REGISTRYCODE><PWD>12</PWD><TIM></TIM><CONTENT>短信内容</CONTENT><SMSID>1</SMSID><MOBILE>13867507888</MOBILE><SMSID>2</SMSID><MOBILE></END>";
}
try {
				URL url = new URL(smsUrl);
				connectionData = url.openConnection();
				connectionData.setConnectTimeout(1000);
				BufferedReader bufferedReader = new BufferedReader(
						new InputStreamReader(connectionData.getInputStream(),
								"UTF-8"));
				StringBuilder stringBuilder = new StringBuilder();
				String line = null;
				while ((line = bufferedReader.readLine()) != null)
					stringBuilder.append(line);

				System.out.println(stringBuilder.toString());
				
			} catch (MalformedURLException e) {
				e.printStackTrace();
			} catch (UnsupportedEncodingException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}
tj2sw 2013-04-12
  • 打赏
  • 举报
回复
封装一个类或(接口),专门做短信发送用,发信短信的代码只和此类(或接口)相关,具体的实现在封装类(或接口实现类)中去实现。避免因接口不用大批量的修改关联代码。
小V小V志 2013-04-12
  • 打赏
  • 举报
回复
参数基本都是那些,实用的话要写多几个方法,里面做好逻辑,判断就OK了, 还有什么要求?、

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧