java发送手机短信

 

package com.lee.used;

import java.io.IOException;

import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
/**
 * 通过sms.webchinese.cn ;  注册的用户名:,密码; 注册后可以查询短信密钥:
 * @author Lee
 *
 */
public class SendMessage {
	/**
	 * 
	 * @param username 用户名
	 * @param passKey 安全密匙
	 * @param telephoneNum 接收方电话号码
	 * @param messageBody 短信内容
	 * @throws HttpException
	 * @throws IOException
	 */
	public static void send(String username,String passKey,String telephoneNum,String messageBody) throws HttpException, IOException{
		HttpClient client = new HttpClient();
		PostMethod post = new PostMethod("http://utf8.sms.webchinese.cn");
		post.addRequestHeader("Content-Type",
				"application/x-www-form-urlencoded;charset=utf-8");// 在头文件中设置转码
		NameValuePair[] data = { new NameValuePair("Uid", username),
				new NameValuePair("Key", passKey),
				new NameValuePair("smsMob", telephoneNum),
				new NameValuePair("smsText", messageBody) };
		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(): " + h.toString());
		}
		String result = new String(post.getResponseBodyAsString().getBytes(
				"utf-8"));
		System.out.println("result: " + result);
		post.releaseConnection();
	}		
	
	public static void main(String[] args) throws Exception {
		String messageBody="短信测试成功!";
		/***
		 * 第一个参数是注册的用户名
		 * 第二个是密钥(注册后自然会根据账户生成)
		 * 第三个是手机号
		 * 第四个是内容
		 * 
		 */
//		SendMessage.send("bas_ball", "liand1xxxxx", "1827488xxxx", messageBody);
		
		/***
		 * 这是返回状态
		 * 返回1 表示只发送1条成功(发送几条成功返回几)
		 * 
		 * -1 	没有该用户账户
-2 	密钥不正确 [查看密钥]
-3 	短信数量不足
-11 	该用户被禁用
-14 	短信内容出现非法字符
-4 	手机号格式不正确
-41 	手机号码为空
-42 	短信内容为空
大于0 	短信发送数量
		 * 
		 */
		HttpClient client = new HttpClient();
		PostMethod post = new PostMethod("http://gbk.sms.webchinese.cn"); 
		post.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gbk");//在头文件中设置转码
		NameValuePair[] data ={ new NameValuePair("Uid", "bas_ball"),new NameValuePair("Key", "a503e1bb5cb3b25f1981"),new NameValuePair("smsMob","1326750xxxx"),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();


	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值