Cum să trimiți SMS din Java

Următoarea aplicație de consolă scrisă în limbajul de programare Java îți va arăta modul în care poți trimite cereri HTTP către SMS Gateway și să primești și mesajul de răspuns. Aceste cereri HTTP pot fi folosite pentru trimiterea mesajelor SMS și poți configura cu ușurință detaliile mesajului SMS modificând variabilele care conțin toate informațiile despre mesajul SMS.

Ce este un API Java SMS?

API-ul Java SMS îți permite să implementezi servicii SMS în aplicația ta Java. API-ul comunică cu SMS Gateway folosind cereri HTTP care trimit mesajul și returnează un mesaj de răspuns.

Cerințe preliminare Trimite SMS din Java
  • Deschide Apache NetBeans IDE
  • Apasă pe 'New project...'
  • Creează o nouă aplicație Java
  • Denumește proiectul și pachetul
  • Creează o nouă clasă Java
  • Copiază și lipește codul sursă exemplu de mai jos
  • Rulează aplicația Java
  • Selectează clasa principală dacă este necesar

Video 1 - Cum să trimiți SMS din JAVA (Tutorial video)

Exemplu de cod sursă Java SMS

Următorul exemplu de cod sursă scris în limbajul de programare Java este liber de utilizat, îl poți implementa simplu în proiectul tău, sau poți modifica codul sursă pentru a-l folosi în alte proiecte sau aplicații. Dacă dorești să rulezi acest cod exemplu, trebuie doar să creezi o nouă aplicație Java cu o singură clasă Java și să rulezi proiectul așa cum poți vedea în instrucțiunile pas cu pas și în videoclipul de mai sus.

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());
        }
    }
}

Pasul 1 - Deschideți Apache NetBeans IDE

Primul pas pentru a crea o aplicație Java care poate trimite mesaje SMS este să deschideți Apache NetBeans IDE pe computerul dumneavoastră. Apache NetBeans oferă editori, asistenți și șabloane pentru a vă ajuta să creați aplicații în Java, PHP și multe alte limbaje. Dacă nu ați descărcat încă Apache NetBeans, îl puteți descărca din secțiunea Cerințe preliminare. După ce l-ați instalat, trebuie doar să-l deschideți de pe desktop, așa cum se vede în Figura 1.

deschideți apache netbeans ide
Figura 1 - Deschideți Apache NetBeans IDE

Pasul 2 - Creați un nou proiect Java

După ce ați deschis Apache NetBeans IDE, acesta se deschide cu fereastra principală. Aici, puteți crea aplicația Java necesară pentru a trimite mesaje SMS. Pentru aceasta, așa cum se vede în Figura 2, faceți clic pe 'File' din bara de instrumente, iar aici, selectați opțiunea 'New project...'.

creați un nou proiect java
Figura 2 - Creați un nou proiect Java

Pasul 3 - Selectați Java Application

În continuare, apare o nouă fereastră care conține toate tipurile de proiecte care pot fi create în Apache NetBeans. Aici, puteți crea o simplă aplicație Java sau puteți selecta din tipuri mai avansate de proiecte. Pentru acest exemplu, puteți folosi o simplă aplicație Java, așa că selectați-o din listă și, ca în Figura 3, faceți clic pe Next.

selectați tipul de proiect java application
Figura 3 - Selectați tipul de proiect Java Application

Pasul 4 - Configurați aplicația Java

În pasul următor, trebuie să faceți o configurare de bază pentru aplicația Java. După cum puteți vedea în Figura 4, puteți da un nume proiectului. De asemenea, puteți seta locația proiectului și, în final, puteți specifica un nume pentru pachet. Dacă ați terminat configurarea, faceți clic pe Finish.

alegeți numele proiectului și pachetul
Figura 4 - Alegeți numele proiectului și pachetul

Pasul 5 - Creați o nouă clasă Java

Proiectul Java Application creat este gol, deci nu conține niciun fișier cu cod sursă, așa că trebuie să creați unul. Pentru aceasta, selectați pachetul proiectului dumneavoastră și faceți clic cu butonul drept al mouse-ului. Din fereastra care apare, așa cum arată Figura 5, selectați New, iar apoi faceți clic pe 'Java class...' pentru a crea o nouă clasă Java în aplicația dumneavoastră.

creați o nouă clasă
Figura 5 - Creați o nouă clasă

Pasul 6 - Configurați clasa Java

Înainte de a finaliza crearea clasei Java, trebuie să specificați un nume pentru clasă. Acest lucru poate fi făcut ușor, așa cum arată Figura 6. După ce ați dat numele corect pentru clasa Java, faceți clic pe butonul Finish pentru a crea cu succes clasa Java.

dați numele noii clase
Figura 6 - Dați numele noii clase

Pasul 7 - Lipiți codul sursă

Următorul lucru pe care trebuie să-l faceți este să plasați codul exemplu în aplicația dumneavoastră Java. Pentru aceasta, derulați până la codul exemplu, copiați întregul cod sursă în clipboard și plasați-l în noua clasă Java creată. În acest moment, puteți rula aplicația Java, așa că faceți clic pe butonul Run din bara de instrumente. La prima rulare, așa cum demonstrează Figura 7, trebuie să selectați clasa principală pentru execuție. Așadar, selectați clasa HttpApiTester și faceți clic pe 'Select Main class'.

lipiți codul de pe site, apoi selectați clasa principală
Figura 7 - Lipiți codul de pe site, apoi selectați clasa principală

Pasul 8 - Vedeți rezultatul aplicației

Dacă ați făcut totul corect până în acest punct, aplicația va începe și veți putea vedea rezultatul în fereastra consolă, așa cum arată Figura 8. Această fereastră afișează cererea HTTP care a fost inițiată și trimisă către SMS Gateway, și de asemenea afișează răspunsul de la SMS Gateway care indică dacă livrarea mesajului SMS a fost reușită sau nu.

programul începe și rezultatul este afișat
Figura 8 - Programul începe și rezultatul este afișat

Pasul 9 - Verificați rezultatul trimiterii în jurnalul Ozeki

În Ozeki 10 SMS Gateway, puteți urmări ce mesaje au fost trimise de aplicația dvs., deoarece serviciul HTTP API înregistrează fiecare eveniment care a avut loc în timpul funcționării sale. Astfel, după ce ați deschis SMS Gateway și ați selectat detaliile serviciului HTTP API, veți putea vedea evenimentele. Așa cum arată Figura 9, serviciul a înregistrat un eveniment, când aplicația Java de exemplu a trimis cererea HTTP către serviciu.

verificați jurnalele serviciului http api
Figura 9 - Verificați jurnalele serviciului HTTP API

Modul în care SMS Gateway procesează mesajele poate fi, de asemenea, vizualizat prin evenimente. Pentru aceasta, deschideți conexiunea HTTP API User, pe care a trebuit să o configurați înainte. Figura 10 demonstrează cum conexiunea gestionează cererea HTTP și trimite mesajul către destinatarul pe care l-ați specificat în aplicația Java.

verificați jurnalele utilizatorului http api
Figura 10 - Verificați jurnalele utilizatorului HTTP API

Rezumat

Ați învățat cum să trimiteți SMS din Java din acest articol. Aceasta înseamnă că puteți implementa servicii SMS în aplicațiile Java. Baza acestei soluții este Ozeki SMS Gateway. Aceasta înseamnă că nu veți avea probleme de performanță sau întârzieri în trimiterea SMS-urilor. În acest fel, soluțiile Java pot satisface mai multe nevoi ale clienților și vor fi versatile. De asemenea, va putea face fluxul de informații mult mai rapid și mai ușor.

Pentru a înțelege mai bine întregul sistem, nu ezitați să consultați paginile de tutorial Ozeki despre primirea SMS în Java, sau încercați să implementați servicii SMS în alte proiecte. De exemplu, utilizați API-ul HTTP SMS cu PHP.

Următorul lucru de făcut este să descărcați Ozeki SMS Gateway și să începeți dezvoltarea acum!

More information