java 调用运营商短信方法(一)
一、编写短信服务器端代码:
package com.enjoy.base.common.util; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; import java.net.URLDecoder; import java.net.URLEncoder; public class SmsClient { protected String smsSvcUrl = "************"; //服务器URL 地址 protected String cust_code = "*******"; //账号 protected String password = "******"; //密码 protected String sp_code = "**********"; //接入码(扩展码) public void sendSms(String mobiles, String content) throws IOException { sendSms(mobiles, content, sp_code, 0); } public void sendSms(String mobiles, String content, long task_id) throws IOException { sendSms(mobiles, content, sp_code, task_id); } public void sendSms(String mobiles, String content, String sp_code) throws IOException { sendSms(mobiles, content, sp_code, 0); } public void sendSms(String mobiles, String content, String sp_code, long task_id) throws IOException { String urlencContent = URLEncoder.encode(content,"utf-8"); //String sign = MD5.getMD5((urlencContent + password).getBytes()); // String sign=MD5.sign(urlencContent, password, "utf-8"); String sign = MD5NewUtil.sign(urlencContent+password); System.out.println(sign); String mobiles_utf8 = URLEncoder.encode(mobiles, "UTF-8"); String postData = "content=" + urlencContent + "&destMobiles=" + mobiles_utf8 + "&sign=" + sign + "&cust_code=" + cust_code + "&sp_code=" + sp_code + "&task_id=" + task_id; System.err.println(postData); URL myurl = new URL(smsSvcUrl); URLConnection urlc = myurl.openConnection(); urlc.setReadTimeout(1000 * 30); urlc.setDoOutput(true); urlc.setDoInput(true); urlc.setAllowUserInteraction(false); DataOutputStream server = new DataOutputStream(urlc.getOutputStream()); //System.out.println("发送数据=" + postData); server.write(postData.getBytes("utf-8")); server.close(); BufferedReader in = new BufferedReader(new InputStreamReader( urlc.getInputStream(), "utf-8")); String resXml = "", s = ""; while ((s = in.readLine()) != null) resXml = resXml + s + "\r\n"; in.close(); System.out.println("接收数据=" + URLDecoder.decode(resXml,"utf-8")); } public static void main(String[] args) { SmsClient client = new SmsClient(); try { client.sendSms("手机号", "【公司名称】短信内容。"); } catch (IOException e) { e.printStackTrace(); } } }
二、在服务层方法调用
for(Object obj : userlist){ Object[] objarry = (Object[]) obj; String userName=(String) objarry[0]; String mobile=(String) objarry[1]; String url = sbCodeUtils.getCodeDefMapNV("SYS_URL").get("URL_JDC_PUSH_BJ_P"); url+="?userName="+userName+"&msg="+Hex64EncodeUtils.stringToUnicode(content); System.out.println(url); //发送短信 try { UrlUtils.getConnectionStr(url, "utf-8", 10000); if(!StringUtil.isEmpty(mobile)){ SmsClient client = new SmsClient(); client.sendSms(mobile, "您有一条来自"+useradmin.getNickname()+"的报警信息,请及时处理。"); } } catch (IOException e) { e.printStackTrace(); } }
三、测试短信
相关推荐
- 定期检查并更新协议版本,因为运营商可能会升级他们的系统。 - 设计良好的错误处理机制,以应对发送失败的情况。 综上所述,通过理解和利用SMGP协议,结合Java编程,我们可以实现一个高效稳定的短信发送系统。在...
Java调用短信猫是一项在Java应用中实现发送短信功能的技术,通常用于企业级服务,如验证码发送、通知提醒等。短信猫是一种硬件设备,通过USB或串口与计算机连接,可以模拟手机SIM卡来发送和接收短信。在Java中调用...
在SMSLIB的基础上进行简单的封装,可以创建一个更高级别的API,使得Java开发人员可以更方便地进行短信操作,例如提供一个发送短信的静态方法,自动处理错误和异常,以及提供更友好的API接口。 例如,你可以创建一个...
5. **短信服务提供商API**:大多数情况下,发送短信并非直接通过运营商,而是通过第三方短信服务提供商,这些提供商提供了API供开发者调用。在DEMO中,`MessageSendClient.java`和`MessageSender.java`可能封装了对...
【联通短信网关JAVA接口】是通信行业中一种重要的技术实现,它主要用于企业或服务提供商与运营商之间进行短信发送和接收的交互。JAVA接口是开发者利用Java编程语言与短信网关进行通讯的工具,使得应用程序能够方便地...
CMPP(China Mobile Short Message Peer-to-Peer)2.0协议是移动运营商提供的一种通信协议,主要用于短信业务的传输,包括点对点短信、上行短信、下行短信以及彩信等多种服务。在Java环境中实现CMPP2.0协议,可以...
首先,Java收发短信需要用到SMS Gateway,这是一个连接移动运营商网络和应用程序的中间件。常见的短信网关有HTTP/HTTPS接口、SMPP协议(Short Message Peer-to-Peer Protocol)等,开发者可以通过这些接口与运营商的...
它允许开发者通过编程方式与电信运营商的网络接口进行交互,实现各种服务,如发送短信、接收短信、语音通话等。在这个名为"电信网关API_JAVA(含超长短信拆分).rar"的压缩包中,包含了一套基于JAVA语言实现的电信网关...
4. **DEMO示例**:DEMO代码通常包含了一个简单的应用实例,演示如何初始化短信服务,设置参数,以及如何调用发送短信的方法。这可以帮助初学者快速上手,了解如何在实际项目中应用这些库。 5. **文档说明**:文档是...
为了实现短信的发送,开发者通常需要利用Short Message Peer-to-Peer (SMPP) 协议,这是一种用于连接短消息中心(SMSC)的应用层协议,常用于第三方应用与运营商网络之间的短信交互。本篇将详细介绍基于SMPP协议的...
- **状态报告**:当短信发送成功或失败时,运营商会回传一个状态报告,SDK会提供相应接口来处理这些报告。 - **批量发送**:对于大量用户,SDK可能提供一次性发送多条短信的接口,提高效率。 - **模板短信**:...
在中国电信的通信网络中,SMGP(Short Message Gateway Protocol)是一种专用于短信服务的协议,它主要用于短信中心(SMSC)与短信应用提供商(SP)之间的数据交换。本主题主要探讨的是如何使用Java来实现SMGP协议...
同时,许多运营商对批量发送短信有限制,应确保遵守相关规定。 通过理解这些知识点,开发者可以构建出能够发送短信的Java应用,无论是Android上的客户端还是服务器端服务。然而,实际应用中还需要考虑更多的细节,...
首先,它依赖于移动MAS网关,这是一个连接企业系统与运营商短信服务的接口。通过这个网关,开发者可以在服务器端编写程序,设定要发送的手机号码列表,这些号码可以来自移动、联通或电信的用户。此外,提到的“jar包...
天翼短信验证码接口提供了一种便捷的方式,让应用程序能够与电信运营商的服务相结合,向用户的手机发送验证码。下面将详细解释天翼短信验证码接口调用客户端的相关知识点。 首先,我们需要理解“接口”这一概念。...
这些SDK(Software Development Kit)通常由电信运营商或第三方短信服务商提供,例如阿里云、腾讯云等,它们包含了发送短信所需的各种API和工具。SDK文档会详细解释如何调用接口、参数设置以及返回结果的处理方法。 ...
在JAVA中,使用生成的服务代理类,你可以创建一个实例,然后调用其中的发送短信方法。例如: ```java SMSClient smsClient = new SMSClient(); SMSRequest request = new SMSRequest(); request.setRecipient(...
8. **扩展性**:为了适应未来的需求,设计时应考虑服务的可扩展性,比如添加支持彩信、WAP Push等功能,或者对接其他运营商的协议。 通过以上分析,Java实现CMPP协议的开发涉及到网络通信、协议解析、HTTP服务、...
另一种常见的方法是利用运营商或第三方短信服务平台提供的Java SDK(软件开发工具包)。这种方式通常需要预先在平台上注册账号并获取相应的密钥或API Key。SDK会封装底层的通信协议,提供更高级别的接口,使得开发者...