Отправка смс через Java - PullRequest
       0

Отправка смс через Java

0 голосов
/ 09 февраля 2012

Я собираюсь отправить смс через 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 ]

1 голос
/ 09 февраля 2012

Это просто HTTP-вызов, вам не нужно ничего особенного в Java (или любом другом современном языке, я полагаю). Просто создайте соответствующую строку *, затем сделайте HTTP-запрос к этому URL.

Посмотрите учебник Sun Чтение и запись в URLConnection , если вам нужно освоить основы выполнения части запроса в Java. При этом используются встроенные классы, я уверен, что существуют десятки библиотек, которые обрабатывают соединения в стиле фанк и / или удобными способами, поэтому во что бы то ни стало, используйте один из них, если вы с ним знакомы.

* Одна потенциальная ошибка, которая могла бы не появиться у вас - аргументы строки запроса должны быть закодированы в URL. Таким образом, символы +, например, в параметре text, являются закодированными пробелами (которые могут иметь другое значение в URL). Аналогично, если вы хотите отправить символ ? в одном из ваших параметров, он должен выглядеть как %3F. Взгляните на принятый ответ на HTTP URL-кодирование адреса в Java , чтобы узнать, как можно безопасно построить строку URL-адреса.

0 голосов
/ 09 февраля 2012

Вы можете попробовать использовать библиотеку 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()));
0 голосов
/ 09 февраля 2012

Это выглядит как простой запрос GET, вы можете использовать библиотеку Apache HttpClient для выполнения такого запроса. Взгляните на учебник Vogella здесь: http://www.vogella.de/articles/ApacheHttpClient/article.html для примера исходного кода и объяснений.

0 голосов
/ 09 февраля 2012
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; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...