Kako poslati SMS iz Jave
Sljedeći primjer konzolne aplikacije napisane u programskom jeziku Java pokazat će vam način na koji možete slati HTTP zahtjeve SMS Gateway-u i dobiti odgovor. Ovi HTTP zahtjevi mogu se koristiti za slanje SMS poruka, a detalje SMS poruke možete jednostavno konfigurirati mijenjajući varijable koje sadrže sve informacije o SMS poruci.
Što je Java SMS API?
Java SMS API omogućuje vam implementaciju SMS usluga u vašu Java aplikaciju. API komunicira s SMS Gateway-om koristeći HTTP zahtjeve koji šalju poruku i vraćaju odgovor.
Preduvjeti
- Instalirani Apache NetBeans IDE 12.0
- Instalirani Ozeki 10 SMS Gateway
- Konfigurirani HTTP API korisnički račun
Slanje SMS-a iz Jave
- Otvorite Apache NetBeans IDE
- Kliknite na 'New project...'
- Kreirajte novu Java aplikaciju
- Nazovite projekt i paket
- Kreirajte novu Java klasu
- Kopirajte i zalijepite primjer izvornog koda u nastavku
- Pokrenite Java aplikaciju
- Odaberite glavnu klasu ako je potrebno
Primjer izvornog koda za Java SMS
Sljedeći primjer izvornog koda napisanog u programskom jeziku Java slobodno je za korištenje, možete ga jednostavno implementirati u svoj projekt ili možete modificirati izvorni kod kako biste ga koristili za druge projekte ili aplikacije. Ako želite pokrenuti ovaj primjer koda, trebate samo kreirati novu Java aplikaciju s jednom Java klasom i pokrenuti projekt kao što možete vidjeti u uputama za korake 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()); } } }
Korak 1 - Otvorite Apache NetBeans IDE
Prvi korak u stvaranju Java aplikacije koja može slati SMS poruke je otvaranje Apache NetBeans IDE-a na vašem računalu. Apache NetBeans pruža uređivače, čarobnjake i predloške koji vam pomažu u stvaranju aplikacija u Javi, PHP-u i mnogim drugim jezicima. Ako još niste preuzeli Apache NetBeans, možete ga preuzeti iz odjeljka Preduvjeti. Nakon što ga instalirate, samo ga morate otvoriti s radne površine kao na slici 1.
Korak 2 - Stvorite novi Java projekt
Nakon što otvorite Apache NetBeans IDE, otvara se glavni prozor. Ovdje možete stvoriti Java aplikaciju potrebnu za slanje SMS poruka. Za to, kao što možete vidjeti na slici 2, kliknite na 'File' u alatnoj traci i odaberite opciju 'New project...'.
Korak 3 - Odaberite Java aplikaciju
Zatim se pojavi novi prozor koji sadrži sve vrste projekata koje možete stvoriti u Apache NetBeansu. Ovdje možete stvoriti jednostavnu Java aplikaciju ili odabrati naprednije vrste projekata. Za ovaj primjer možete koristiti jednostavnu Java aplikaciju, pa je odaberite s popisa i, kao na slici 3, kliknite Next.
Korak 4 - Konfigurirajte Java aplikaciju
U sljedećem koraku potrebno je napraviti osnovnu konfiguraciju za Java aplikaciju. Kao što možete vidjeti na slici 4, možete dati naziv projektu. Također možete postaviti lokaciju projekta i na kraju možete odrediti naziv paketa. Ako ste završili s konfiguracijom, samo kliknite na Finish.
Korak 5 - Stvorite novu Java klasu
Stvoreni Java projekt je prazan, pa ne sadrži nikakvu datoteku s izvornim kodom, pa je potrebno stvoriti jednu. Za to odaberite paket vašeg projekta i desnim klikom miša otvorite skočni prozor. Kao što pokazuje slika 5, odaberite New, a zatim kliknite na 'Java class...' kako biste stvorili novu Java klasu u vašoj aplikaciji.
Korak 6 - Konfigurirajte Java klasu
Prije završetka stvaranja Java klase potrebno je odrediti naziv za klasu. To se lako može učiniti kao što pokazuje slika 6. Nakon što ste dali odgovarajući naziv Java klasi, samo kliknite na gumb Finish kako biste uspješno stvorili Java klasu.
Korak 7 - Zalijepite izvorni kod
Sljedeća stvar koju trebate učiniti je umetnuti primjer koda u vašu Java aplikaciju. Za to samo se pomaknite do primjera koda, kopirajte cijeli izvorni kod u međuspremnik i zalijepite ga u novostvorenu Java klasu. U ovom trenutku možete pokrenuti Java aplikaciju, pa samo kliknite na gumb Run u alatnoj traci. Pri prvom pokretanju, kao što pokazuje slika 7, potrebno je odabrati glavnu klasu za izvršavanje. Dakle, samo odaberite klasu HttpApiTester i kliknite na 'Select Main class'.
Korak 8 - Pogledajte rezultat aplikacije
Ako ste do sada sve učinili kako treba, aplikacija će se pokrenuti i moći ćete vidjeti rezultat u prozoru konzole kao što pokazuje slika 8. Ovaj prozor ispisuje HTTP zahtjev koji je pokrenut i poslan SMS pristupniku, a također ispisuje odgovor SMS pristupnika koji pokazuje je li isporuka SMS poruke bila uspješna ili ne.
U Ozeki 10 SMS Gatewayu, možete pratiti koje su poruke poslale vaše aplikacije, budući da HTTP API servis bilježi svaki događaj koji se dogodio dok je bio omogućen. Dakle, nakon što otvorite SMS Gateway i odaberete detalje HTTP API servisa, moći ćete vidjeti događaje. Kao što Slika 9 pokazuje, servis je zabilježio događaj, kada je primjer Java aplikacije poslao HTTP zahtjev servisu.
Način na koji SMS Gateway obrađuje poruke također se može pregledati kroz događaje. Za to, otvorite HTTP API korisničku vezu koju ste morali konfigurirati prije. Slika 10 pokazuje kako veza rukuje HTTP zahtjevom i šalje poruku primatelju kojeg ste naveli u svojoj Java aplikaciji.
Sažetak
Iz ovog članka naučili ste kako poslati SMS iz Jave. To znači da možete implementirati SMS usluge u svoje Java aplikacije. Temelj ovog rješenja je Ozeki SMS Gateway. To znači da nećete imati problema s performansama ili kašnjenjem u slanju SMS-a. Na taj način vaša Java rješenja mogu zadovoljiti više potreba korisnika i bit će svestrana. Također će omogućiti brži i lakši protok informacija.
Kako biste bolje razumjeli cijeli sustav, slobodno pogledajte Ozeki tutorijalne stranice o primanju SMS-a u Javi, ili pokušajte implementirati SMS usluge u druge projekte. Na primjer, koristite HTTP SMS API s PHP-om.
Sljedeća stvar koju trebate učiniti je preuzeti Ozeki SMS Gateway i početi s razvojem odmah!
More information