JAVA发送手机短信

说明:测试通过
JAVA发送手机短信,流传有几种方法:
 (1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册;
 (2)使用短信mao的方式进行短信的发送,这种方式应该是比较的常用,前提是需要购买硬件设备,呵呵
 (3)使用中国网建提供的SMS短信平台(申请账号地址:http://sms.webchinese.cn/default.shtml【已注册:用户名:  密码:  接口密钥:】) ,通过这种方式,短信也是收费的,但注册成功后会有5条测试短信供测试使用,笔者就是采用这种方式方法达到工作目的的。

本程序主要是运用了中国网建提供的SMS短信平台,这个短信平台基于java提供个专门的接口


package com.text; 
 
import org.apache.commons.httpclient.Header; 
import org.apache.commons.httpclient.HttpClient; 
import org.apache.commons.httpclient.NameValuePair; 
import org.apache.commons.httpclient.methods.PostMethod; 
 
public class SendMsg_webchinese { 
 
    public static void main(String[] args) throws Exception { 
 
        HttpClient client = new HttpClient(); 
        PostMethod post = new PostMethod("http://sms.webchinese.cn/web_api/"); 
        post.addRequestHeader("Content-Type", 
                "application/x-www-form-urlencoded;charset=gbk");// 在头文件中设置转码 
        NameValuePair[] data = { new NameValuePair("Uid", "cshxxxxxxxx"), // 注册的用户名 
                new NameValuePair("Key", "53295058d1c46710666a"),
                 // 注册成功后,登录网站使用的密钥,这个密钥要登录到国建网然后有一个API接口,点进去就有一个key,可以改,那个才是密钥 
                new NameValuePair("smsMob", "187xxxxxxx"), // 手机号码 
                new NameValuePair("smsText", "通知") };//设置短信内容          
                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(); 
    } 
运行本程序首先的代入三个jar包:

(在中国网建内有详细的案例和jia包下载地址信息) 

commons-codec-1.4

commons-httpclient-3.1

commons-logging-1.1.1

请自行下载,呵呵

GBK编码发送接口地址:
http://gbk.sms.webchinese.cn/?Uid=本站用户名&Key=接口安全密码&smsMob=手机号码&smsText=短信内容
UTF-8编码发送接口地址:
http://utf8.sms.webchinese.cn/?Uid=本站用户名&Key=接口安全密码&smsMob=手机号码&smsText=短信内容
获取短信数量接口地址(UTF8):
http://sms.webchinese.cn/web_api/SMS/?Action=SMS_Num&Uid=本站用户名&Key=接口安全密码
获取短信数量接口地址(GBK):
http://sms.webchinese.cn/web_api/SMS/GBK/?Action=SMS_Num&Uid=本站用户名&Key=接口安全密码

 

短信发送后返回值 说 明
-1 没有该用户账户
-2 密钥不正确(不是用户密码)
-3 短信数量不足
-11 该用户被禁用
-14 短信内容出现非法字符
-41 手机号码为空
-42 短信内容为空
大于0 短信发送数量

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java发送手机短信时,可以使用 GSM 码或 Unicode 码来发送。如果使用 GSM 码,则可以通过在消息中插入特定的控制字符来实现换行,具体为 "\r" 或 "\n" 或 "\r\n",具体哪个符号有效取决于你所使用的设备。 以下是一个示例代码片段,可以将消息按照需要进行换行: ```java String message = "这是第一行。" + "\r\n" + "这是第二行。"; SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage(phoneNumber, null, message, null, null); ``` 在上面的示例中,我们在消息中使用了 "\r\n" 控制字符,以实现消息的换行。请注意,如果你的设备不支持 "\r\n",则需要使用 "\r" 或 "\n" 来代替。 如果你想使用 Unicode 码发送消息,则可以使用 "\n" 或 "\r\n" 来实现换行。Unicode 码不需要特定的控制字符来实现换行,因为 Unicode 中的换行符是唯一的,并且可以被所有设备所支持。以下是一个示例代码片段,可以使用 Unicode 码发送消息并实现换行: ```java String message = "这是第一行。\n这是第二行。"; SmsManager smsManager = SmsManager.getDefault(); ArrayList<String> messages = smsManager.divideMessage(message); smsManager.sendMultipartTextMessage(phoneNumber, null, messages, null, null); ``` 在上面的示例中,我们使用了 "\n" 控制字符来实现消息的换行。由于 Unicode 码的长度限制较低,因此我们还使用了 "divideMessage()" 方法来将消息拆分为多个部分。最后,我们使用 "sendMultipartTextMessage()" 方法来发送多条短信

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值