2012-02-09 4 views
0

Я собираюсь отправить sms через 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(); 

ответ

1

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

Загляните в учебник Sun Reading from and Writing to a URLConnection, если вам нужно подобрать основы того, как сделать часть запроса на Java. Это использует встроенные классы, я уверен, что есть десятки библиотек, которые также обрабатывают соединения с помощью фанки и/или удобных способов, поэтому обязательно используйте один из них, если вы знакомы с ним.

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

+0

@Doyle Я обновляемый с некоторыми кодами вы можете убедиться в том, что какое-то разумное? – user837306

-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; 
} 
+0

как, если мне нужно ждать сообщения о статусе доставки после вызова openConnection, есть ли какой-нибудь метод для этого? – user837306

+0

Я так не думаю. это простой HTTP-запрос, который является асинхронным. Вы можете прочитать вывод, как этот 'urlconnection.setRequestMethod (« POST »); \t \t urlconnection.setRequestProperty («Content-Type», «application/x-www-form-urlencoded»); \t \t urlconnection.setDoOutput (true); \t \t OutputStreamWriter out = новый OutputStreamWriter (urlconnection.getOutputStream()); \t \t out.write (postData); \t \t out.close(); \t \t BufferedReader in = new BufferedReader (\t новый InputStreamReader (urlconnection.getInputStream())); \t \t String decodedString; \t \t while ((decodedString = in.readLine())! = null) { \t \t \t retval + = decodedString; \t \t} ' –

+0

. Узнайте, как форматировать блоки кода, а затем отредактируйте этот беспорядок кода (в комментарии) в ответ. –

0

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

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())); 
+0

да Мне нужно получить статус доставки, как будет полезен буферизованный читатель. В качестве части URL-адреса мне нужно отправить dlrreq = true, чтобы получить статус доставки. – user837306

Смежные вопросы