Kako poslati SMS iz Jave
Sledeći primer konzolne aplikacije napisane u programskom jeziku Java pokazaće vam način na koji možete slati HTTP zahteve ka SMS Gateway-u i dobiti odgovor. Ovi HTTP zahtevi se mogu koristiti za slanje SMS poruka i lako možete konfigurisati detalje SMS poruke modifikovanjem promenljivih koje sadrže sve informacije u vezi sa SMS porukom.
Šta je Java SMS API?Java SMS API vam omogućava da implementirate SMS usluge u vašu Java aplikaciju. API komunicira sa SMS Gateway-om koristeći HTTP zahteve koji šalju poruku i vraćaju odgovor.
Preduslovi- Instaliran Apache NetBeans IDE 12.0
- Instaliran Ozeki 10 SMS Gateway
- Konfigurisan HTTP API korisnički nalog
- Otvorite Apache NetBeans IDE
- Kliknite na 'New project...'
- Napravite novu Java aplikaciju
- Nazovite projekat i paket
- Napravite novu Java klasu
- Kopirajte i nalepite primer izvornog koda ispod
- Pokrenite Java aplikaciju
- Izaberite glavnu klasu ako je potrebno
Primer Java SMS izvornog koda
Sledeći primer izvornog koda napisan u programskom jeziku Java je slobodan za korišćenje, možete ga jednostavno implementirati u vaš projekat, ili možete modifikovati izvorni kod da ga koristite za druge projekte ili aplikacije. Ako želite da pokrenete ovaj primer, samo treba da napravite novu Java aplikaciju sa jednom Java klasom i pokrenete projekat kao što možete videti u koracima i videu iznad.
package tester; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.security.GeneralSecurityException; import java.security.cert.X509Certificate; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSession; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; public class HttpApiTester { public static void main(String[] args) { TrustManager[] trustAllCerts = new TrustManager[]{ new X509TrustManager() { @Override public java.security.cert.X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; } @Override public void checkClientTrusted( java.security.cert.X509Certificate[] certs, String authType) { } @Override public void checkServerTrusted( java.security.cert.X509Certificate[] certs, String authType) { } } }; try { SSLContext sc = SSLContext.getInstance("SSL"); sc.init(null, trustAllCerts, new java.security.SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); HostnameVerifier allHostsValid = new HostnameVerifier() { @Override public boolean verify(String hostname, SSLSession session) { return true; } }; HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid); } catch (GeneralSecurityException e) { System.out.println(e.getMessage()); } try { StringBuilder sendString = new StringBuilder(); String username = "john"; String password = "Xc3ffs"; String messagetype = "SMS:TEXT"; String httpUrl = "https://127.0.0.1:9508/"; String recipient = URLEncoder.encode("+36201324567", "UTF-8"); String messagedata = URLEncoder.encode("TestMessage", "UTF-8"); sendString.append(httpUrl).append("api?action=sendmessage"). append("&username=").append(username).append("&password="). append(password).append("&recipient=").append(recipient). append("&messagetype=").append(messagetype).append("&messagedata="). append(messagedata); System.out.println("Sending request: " + sendString.toString()); URL url = new URL(sendString.toString()); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setRequestMethod("GET"); BufferedReader br = null; System.out.println("Http response received: "); if (con.getResponseCode() == 200) { br = new BufferedReader(new InputStreamReader(con.getInputStream())); String strCurrentLine; while ((strCurrentLine = br.readLine()) != null) { System.out.println(strCurrentLine); } } else { br = new BufferedReader(new InputStreamReader(con.getErrorStream())); String strCurrentLine; while ((strCurrentLine = br.readLine()) != null) { System.out.println(strCurrentLine); } } } catch (Exception ex) { System.out.println(ex.getMessage()); } } }
Корак 1 - Отворите Apache NetBeans IDE
Први корак у креирању Java апликације која може да шаље SMS поруке је да отворите Apache NetBeans IDE на свом рачунару. Apache NetBeans пружа уређиваче, чаробњаке и шаблоне који ће вам помоћи да креирате апликације у Java, PHP и многим другим језицима. Ако још нисте преузели Apache NetBeans, можете га преузети из одељка Претпоставке. Након што га инсталирате, једноставно га отворите са радне површине као на Слици 1.
Након што отворите Apache NetBeans IDE, отвориће се главни прозор. Овде можете креирати Java апликацију потребну за слање SMS порука. За то, као што можете видети на Слици 2, кликните на 'File' у траци са алаткама, а затим изаберите опцију 'New project...'.
Затим се појављује нови прозор који садржи све типове пројеката који се могу креирати у Apache NetBeans. Овде можете креирати једноставну Java апликацију или изабрати неки од напреднијих типова пројеката. За овај пример можете користити једноставну Java апликацију, па је изаберите са листе и, као на Слици 3, кликните Next.
У следећем кораку, потребно је извршити основну конфигурацију Java апликације. Као што можете видети на Слици 4, можете дати име пројекту. Такође можете поставити локацију пројекта и на крају можете одредити име за пакет. Ако сте завршили са подешавањима, једноставно кликните на Finish.
Направљени Java пројекат је празан, тако да не садржи ниједан фајл са изворним кодом, па је потребно да га креирате. За то, изаберите пакет вашег пројекта и кликните десним тастером миша. Из искачућег прозора, као што Слика 5 показује, изаберите New, а затим кликните на 'Java class...' да бисте креирали нову Java класу у вашој апликацији.
Пре него што завршите креирање Java класе, потребно је да одредите име за класу. То се лако може урадити као што Слика 6 показује. Након што сте дали одговарајуће име за Java класу, једноставно кликните на дугме Finish да бисте успешно креирали Java класу.
Следећа ствар коју треба да урадите је да поставите пример кода у вашу Java апликацију. За то, једноставно се померите до примера кода, копирајте цео изворни код у clipboard и налепите га у вашу новокреирану Java класу. У овом тренутку, можете покренути Java апликацију, па једноставно кликните на дугме Run у траци са алаткама. При првом покретању, као што Слика 7 показује, потребно је да изаберете главну класу за извршавање. Дакле, изаберите класу HttpApiTester и кликните на 'Select Main class'.
Ако сте све урадили како треба до овог тренутка, апликација ће се покренути и моћи ћете да видите резултат у прозору конзоле као што Слика 8 показује. Овај прозор исписује HTTP захтев који је покренут и послат SMS Gateway-у, а такође исписује и одговор од SMS Gateway-а који указује на то да ли је испорука SMS поруке била успешна или не.
Корак 9 - Проверите резултат слања у Ozeki лог-у
У Ozeki 10 SMS Gateway-у, можете пратити које поруке је послала ваша апликација, јер HTTP API сервис бележи сваки догађај који се десио док је активиран. Дакле, након што отворите SMS Gateway и изаберете детаље HTTP API сервиса, моћи ћете да видите догађаје. Као што Слика 9 показује, сервис је забележио догађај када је пример Java апликације послао HTTP захтев сервису.
Начин на који SMS Gateway обрађује поруке такође се може видети кроз догађаје. За то, отворите HTTP API корисничку везу, коју сте морали да конфигуришете раније. Слика 10 показује како веза обрађује HTTP захтев и шаље поруку примаоцу које сте навели у вашој Java апликацији.
Из овог чланка сте научили како да шаљете SMS из Java-е. То значи да можете имплементирати SMS услуге у ваше Java апликације. Основа овог решења је Ozeki SMS Gateway. То значи да нећете имати проблема са перформансама или кашњењем у слању SMS-ова. На овај начин ваша Java решења могу задовољити више потреба купаца и биће универзална. Такође ће омогућити да информације теку брже и лакше.
Да бисте боље разумели цео систем, слободно погледајте Ozeki туторијалне странице о примању SMS-ова у Java-и, или покушајте да имплементирате SMS услуге у другим пројектима. На пример, користите HTTP SMS API са PHP-ом.
Следећа ствар коју треба да урадите је да преузмете Ozeki SMS Gateway и почнете са развојем одмах!
More information