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

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

Video 1 - Kako poslati SMS iz JAVE (Video tutorijal)

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.

otvorite apache netbeans ide
Slika 1 - Otvorite Apache NetBeans IDE

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...'.

stvorite novi java projekt
Slika 2 - Stvorite novi Java projekt

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.

odaberite vrstu java aplikacije
Slika 3 - Odaberite vrstu Java aplikacije

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.

odaberite naziv projekta i paket
Slika 4 - Odaberite naziv projekta i paket

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.

stvorite novu klasu
Slika 5 - Stvorite novu klasu

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.

dajte novoj klasi naziv
Slika 6 - Dajte novoj klasi naziv

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'.

zalijepite kod s web stranice zatim odaberite glavnu klasu
Slika 7 - Zalijepite kod s web stranice, zatim odaberite glavnu klasu

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.

program se pokreće i rezultat se prikazuje
Slika 8 - Program se pokreće i rezultat se prikazuje

Korak 9 - Provjerite rezultat slanja u Ozeki zapisniku

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.

provjerite zapisnike http api servisa
Slika 9 - Provjerite zapisnike HTTP API servisa

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.

provjerite zapisnike http api korisnika
Slika 10 - Provjerite zapisnike HTTP API korisnika

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