`
myCsdn_taoge
  • 浏览: 40956 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
文章分类
社区版块
存档分类
最新评论

利用java 发送手机短信

阅读更多
今天闲来无事,在微博上看到一个关于用java实现的一个发送手机短信的程序,看了看,写的不太相信,闲的没事,把他整理下来,以后可能用得着

JAVA发送手机短信,流传有几种方法:(1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册;(2)使用短信mao的方式进行短信的发送,这种方式应该是比较的常用,前提是需要购买硬件设备,呵呵(3)使用中国网建提供的SMS短信平台(申请账号地址:http://sms.webchinese.cn/default.shtml)

本程序主要是运用了中国网建提供的SMS短信平台,这个短信平台基于java提供个专门的接口,话不多说。,上代码,有代码有真相,呵呵

[java] view plaincopyprint?
01.package com.text; 
02. 
03.import org.apache.commons.httpclient.Header; 
04.import org.apache.commons.httpclient.HttpClient; 
05.import org.apache.commons.httpclient.NameValuePair; 
06.import org.apache.commons.httpclient.methods.PostMethod; 
07. 
08.public class SendMsg_webchinese { 
09. 
10.    public static void main(String[] args) throws Exception { 
11. 
12.        HttpClient client = new HttpClient(); 
13.        PostMethod post = new PostMethod("http://sms.webchinese.cn/web_api/"); 
14.        post.addRequestHeader("Content-Type", 
15.                "application/x-www-form-urlencoded;charset=gbk");// 在头文件中设置转码  
16.        NameValuePair[] data = { new NameValuePair("Uid", "cshxxxxxxxx"), // 注册的用户名  
17.                new NameValuePair("Key", "53295058d1c46710666a"), // 注册成功后,登录网站使用的密钥  
18.                new NameValuePair("smsMob", "187xxxxxxx"), // 手机号码  
19.                new NameValuePair("smsText", "以后给我老实点哈。。。。听话。。。") };//设置短信内容         
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"), // 注册成功后,登录网站使用的密钥
new NameValuePair("smsMob", "187xxxxxxx"), // 手机号码
new NameValuePair("smsText", "以后给我老实点哈。。。。听话。。。") };//设置短信内容 [java] view plaincopyprint?
01.    post.setRequestBody(data); 
02. 
03.    client.executeMethod(post); 
04.    Header[] headers = post.getResponseHeaders(); 
05.    int statusCode = post.getStatusCode(); 
06.    System.out.println("statusCode:" + statusCode); 
07.    for (Header h : headers) { 
08.        System.out.println(h.toString()); 
09.    } 
10.    String result = new String(post.getResponseBodyAsString().getBytes( 
11.            "gbk")); 
12.    System.out.println(result); 
13.    post.releaseConnection(); 
14.} 
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包:

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 短信发送数量



注:上面的用户名和密码是我原先申请的,不知道为什么被停用了,在运行本程序之前请先到SMS短信平台去申请一个用户名和密码。





附:


1. ASP 调用例子
<%
'常用函数
'输入url目标网页地址,返回值getHTTPPage是目标网页的html代码
function getHTTPPage(url)
dim Http
set Http=server.createobject("MSXML2.XMLHTTP")
Http.open "GET",url,false
Http.send()
if Http.readystate<>4 then
exit function
end if
getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")
set http=nothing
if err.number<>0 then err.Clear
end function
Function BytesToBstr(body,Cset)
dim objstream
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function

'自已组合一下提交的URL加入自己的账号和密码
sms_url="http://sms.webchinese.cn/web_api/?Uid=账号&Key=接口密钥&smsMob=手机号码&smsText=短信内容"
response.write getHTTPPage(sms_url)
%>


2.C# 调用
//需要用到的命名空间
using System.Net;
using System.IO;
using System.Text;
//调用时只需要把拼成的URL传给该函数即可。判断返回值即可
public string GetHtmlFromUrl(string url)
{
string strRet = null;
if(url==null || url.Trim().ToString()=="")
{
return strRet;
}
string targeturl = url.Trim().ToString();
try
{
HttpWebRequest hr = (HttpWebRequest)WebRequest.Create(targeturl);
hr.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
hr.Method = "GET";
hr.Timeout = 30 * 60 * 1000;
WebResponse hs = hr.GetResponse();
Stream sr = hs.GetResponseStream();
StreamReader ser = new StreamReader(sr, Encoding.Default);
strRet = ser.ReadToEnd();
}
catch (Exception ex)
{
strRet = null;
}
return strRet;
}

3.JAVA调用

import java.io.UnsupportedEncodingException;
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://gbk.sms.webchinese.cn");
post.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gbk");//在头文件中设置转码
NameValuePair[] data ={ new NameValuePair("Uid", "本站用户名"),new NameValuePair("Key", "接口安全密码"),new NameValuePair("smsMob","手机号码"),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包下载
commons-logging-1.1.1.jar
commons-httpclient-3.1.jar
commons-codec-1.4.jar



4.PHP
$url='http://sms.webchinese.cn/web_api/?Uid=账号&Key=接口密钥&smsMob=手机号码&smsText=短信内容';
echo Get($url);
function Get($url)
{
if(function_exists('file_get_contents'))
{
$file_contents = file_get_contents($url);
}
else
{
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
}
return $file_contents;
}

5.VB.NET
'调用发送短信,NoList接收号码.多个之间用,分开,Memo内容70字
Public Function SendSMS(ByVal NoList As String, ByVal Memo As String) As String
Dim Url As String = "http://sms.webchinese.cn/web_api/?Uid=账号&Key=接口密钥&smsMob=手机号码&smsText=短信内容"
Dim webClient As New Net.WebClient()
Try
'Dim responseData As Byte() =
Dim srcString As String = webClient.DownloadString(Url)
Return srcString
Catch
Return "-444"
End Try
End Function
分享到:
评论

相关推荐

    java代码实现短信猫发短信

    在Java编程环境中,我们可以利用Java的串口通信API来控制短信猫进行操作。以下是一些关于这个主题的关键知识点: 1. **Java串口通信**: Java的标准库提供了`javax.comm`包,用于处理串行通信。这个包包含了`...

    java实现给指定手机号码发送文字短信

    在Java编程环境中,发送短信至指定手机主要涉及网络通信和HTTP请求的知识。下面将详细讲解这一过程中的关键技术和步骤...通过阅读和分析这些文件,可以更深入地了解如何在Java中实现给指定手机号码发送文字短信的功能。

    java手机短信发送demo

    本示例将介绍如何利用阿里云短信服务API在Java环境中实现短信的发送功能。这是一个基于Maven构建的项目,因此我们需要理解Maven的项目结构和依赖管理。 首先,我们需要在阿里云官网注册账号并开通短信服务,获取...

    java实现手机短信的发送

    下面我们将详细讨论如何利用Java来实现这一功能,以及`testmessage`这个可能包含测试用例或样例代码的文件。 首先,我们需要了解短信发送通常涉及的接口和服务。在Java环境下,我们不能直接通过系统API发送短信,...

    Java利用中国网建SMS短信通平台发送手机短信

    4. `java发送手机短信.txt`:可能包含了发送短信的Java代码示例。 在Java中发送短信,通常需要构造一个HTTP POST请求到短信服务提供商的API接口,传递必要的参数,如手机号码、短信内容、API密钥等。Apache ...

    用java实现的短信发送

    Java 实现短信发送是指利用 Java 语言编写程序来实现服务器向手机发送短信的过程。在这里,我们将使用 Java 语言来实现这个功能,并且使用了 Apache 的 Commons HttpClient 库来发送 HTTP 请求。 首先,我们需要...

    cmpp2.0短信网关发送短信代码(java)

    3. **发送短信**:利用CMPP_SUBMIT报文构造短信发送请求,包括短消息的内容、目标手机号码、短信类型、编码格式等信息,并通过TCP连接发送到网关。 4. **接收应答**:等待服务器返回CMPP_SUBMIT_RESP,这个响应包含...

    java实现发送短信

    本教程将详细讲解如何利用Java调用接口来完成短信发送的功能。 首先,我们需要理解发送短信的基本流程:通常,开发者会通过HTTP请求与第三方短信服务商的API接口进行交互,传递必要的参数如手机号码、短信内容和...

    Java通过SMS短信平台实现发短信功能

    本文主要介绍如何利用Java语言结合第三方短信服务平台——中国网建提供的SMS短信平台,来实现发送短信的功能。此方法不仅适用于初学者,对于有一定开发经验的技术人员来说也有一定的参考价值。 #### 准备工作 在...

    java 串口发送短信库

    Java串口发送短信库是一种利用Java编程语言实现的类库,专用于通过串行通信接口发送短信。这个库设计简洁,使得开发人员可以方便地构建和发送PDU(Protocol Data Unit),这是SMS消息的一种二进制格式。PDU模式是GSM...

    java利用飞信API发送短信

    Java利用飞信API发送短信是一项常见的任务,尤其在企业级应用中,可能需要批量发送通知或验证码。飞信,全称中国移动飞信,是中国移动推出的一款融合通信服务,允许用户通过网络免费向中国移动、中国联通、中国电信...

    java手机短信收发程序源码

    这个程序的核心在于利用Java的Socket通信技术以及相关的SMS协议来与移动运营商的短信网关进行交互。下面将详细介绍该程序涉及的技术点和实现原理。 1. Java Socket通信:Java Socket是网络通信的基础,它提供了两台...

    利用Google日历向手机发送短信 Java

    "利用Google日历向手机发送短信 Java"这个项目就是一种创新的方法,它利用了Google提供的API服务来实现这一目标。以下是关于这个项目的详细知识点: 1. **Google日历API**:Google日历API是Google提供的一种服务,...

    JAVA联通短信代码

    总的来说,掌握“JAVA联通短信代码”意味着开发者能够利用Java实现与中国联通短信服务的无缝对接,为各种应用场景如验证码发送、通知提醒等提供可靠的技术支持。理解和学习这部分内容对于提升Java开发者在通信领域的...

    java代码实现发送短信,中国电信smgp协议api

    在中国电信的SMGP(Short ...综上所述,通过理解和利用SMGP协议,结合Java编程,我们可以实现一个高效稳定的短信发送系统。在实际项目中,还需要考虑性能优化、安全性以及与其他系统集成等问题,以提供更高质量的服务。

    利用Google日历发送短信源码 Java

    然后,在Java应用中,你可以使用HttpURLConnection或者更高级的库,如Apache HttpClient或OkHttp,发送POST请求到短信服务的API端点,携带必要的参数如API密钥、接收手机号和短信内容。 具体实现时,你可能需要创建...

    java发送短信逻辑

    首先,Java发送短信的核心是利用HTTP或HTTPS协议与短信服务提供商的API进行交互。通常,服务提供商会提供一个RESTful API,允许开发者通过HTTP请求发送短信。为了实现这个功能,我们需要了解API的文档,特别是关于...

    java实现短信信息的发送

    以下将详细讲解如何利用Java实现短信发送,以及如何理解和使用这个工具类。 首先,短信发送通常依赖于第三方短信服务提供商,例如阿里云、腾讯云等。这些服务商提供了API接口,通过HTTP请求或者SDK来调用,以发送...

    Java发送短信验证码

    以上就是关于"Java发送短信验证码"的核心知识点。通过理解这些概念,你将能够构建自己的Java应用程序,实现在用户交互时发送短信验证码的功能。记得在实际使用中,根据信易通短信平台的具体接口文档进行调整。

    java串口发送短信.zip

    在这个"java串口发送短信.zip"项目中,开发者使用了RXTX库来实现通过Java程序控制短信猫(SMS Modem)发送短信的功能。短信猫是一种硬件设备,它可以连接到计算机的串行接口(如COM口或USB口),并模拟GSM手机,从而...

Global site tag (gtag.js) - Google Analytics