通过java发送短信

时间:2012-02-09 08:53:02

标签: java sms

我将通过java发送短信。问题是短信网关要求我以这种格式发送

http://push1.maccesssmspush.com/servlet/com.aclwireless.pushconnectivity.listen
ers.TextListener?userId=xxxxx&pass=xxxx&appid=xxxx&subappid=xxxx&msgtyp
e=1&contenttype=1&selfid=true&to=9810790590,9810549717&from=ACL&dlrre
q=true&text=This+is+a+test+msg+from+ACL&alert=

如何从java应用程序调用它的问题是可能还是需要特殊的库?它是否使用HttpURLConnection将完成这项工作?谢谢。

我在下面做的示例代码是正确的。

URL sendSms1 = new URL("http://push1.maccesssmspush.com/servlet/com.aclwireless.pushconnectivity.listen
    ers.TextListener?userId=xxxxx&pass=xxxx&appid=xxxx&subappid=xxxx&msgtyp
    e=1&contenttype=1&selfid=true&to=9810790590,9810549717&from=ACL&dlrre
    q=true&text=This+is+a+test+msg+from+ACL&alert=");

URLConnection smsConn1 =
    sendSms1.openConnection();

4 个答案:

答案 0 :(得分:1)

这只是一个HTTP调用,你不需要任何特殊的Java(或任何现代语言,我期待)。只需根据需要构建字符串*,然后向该URL发出HTTP请求。

如果您需要了解如何使用Java执行请求部分的基础知识,请查看Sun教程Reading from and Writing to a URLConnection。这使用内置类,我敢肯定有几十个库以时髦和/或方便的方式处理连接,所以如果你熟悉它,请务必使用其中一个。

*可能没有发生的一个潜在问题 - 您的查询字符串参数必须是URL编码的。因此,+参数中的text字符是编码空格(在URL中具有不同的含义)。同样,如果您想在其中一个参数中发送?字符,则必须显示为%3F。有关如何安全地构建URL字符串的示例,请查看HTTP URL Address Encoding in Java的已接受答案。

答案 1 :(得分:0)

它看起来像一个简单的GET请求,您可以使用Apache HttpClient libarary来执行这样的请求。请查看Vogella的教程:http://www.vogella.de/articles/ApacheHttpClient/article.html,了解示例源代码和解释。

答案 2 :(得分:0)

您可以尝试使用java.net.URL库。

像这样

// at this before you need to generate the urlString as "http://push1.maccesssmspush.com/servlet/com.aclwireless.pushconnectivity.listen
ers.TextListener?userId=xxxxx&pass=xxxx&appid=xxxx&subappid=xxxx&msgtyp
e=1&contenttype=1&selfid=true&to=9810790590,9810549717&from=ACL&dlrre
q=true&text=This+is+a+test+msg+from+ACL&alert="

URL url = new URL(urlString);
// send sms
URLConnection urlConnection = url.openConnection();// open the url
// and you, also can get the feedback if you want
BufferedReader br = new BufferedReader(new InputStreamReader(
urlConnection.getInputStream()));

答案 3 :(得分:-2)

URL url = new URL("http://smscountry.com/SMSCwebservice.asp");
HttpURLConnection urlconnection = (HttpURLConnection) url.openConnection();

<强> [编辑]

urlconnection.setRequestMethod("POST"); 
urlconnection.setRequestProperty("Content-Type","application/x-www-form-urlenc‌​oded");     
urlconnection.setDoOutput(true); 

OutputStreamWriter out = new OutputStreamWriter(urlconnection.getOutputStream());
out.write(postData); 
out.close(); 

BufferedReader in = new BufferedReader(new InputStreamReader(urlconnection.getInputStream()));

String decodedString; 

while ((decodedString = in.readLine()) != null) { 
  retval += decodedString; 
}