Hogyan küldjünk SMS-t Javából

A következő példa konzolalkalmazás, amelyet Java programozási nyelven írtunk, bemutatja, hogyan küldhetünk HTTP kéréseket az SMS Gateway felé, és hogyan kaphatunk választ is. Ezeket az HTTP kéréseket SMS üzenetek küldésére használhatjuk, és egyszerűen konfigurálhatjuk az SMS üzenet részleteit azoknak a változóknak a módosításával, amelyek az SMS üzenetre vonatkozó összes információt tartalmazzák.

Mi az a Java SMS API?

A Java SMS API lehetővé teszi, hogy SMS szolgáltatásokat implementáljunk Java alkalmazásunkba. Az API HTTP kéréseken keresztül kommunikál az SMS Gateway-vel, amely elküldi az üzenetet és válaszüzenettel tér vissza.

Előfeltételek

SMS küldése Javából

  • Nyissa meg az Apache NetBeans IDE-t
  • Kattintson az 'Új projekt...' lehetőségre
  • Hozzon létre egy új Java alkalmazást
  • Nevezze el a projektet és a csomagot
  • Hozzon létre egy új Java osztályt
  • Másolja be az alábbi példa forráskódot
  • Futtassa a Java alkalmazást
  • Szükség esetén válassza ki a fő osztályt

1. videó - Hogyan küldjünk SMS-t Javából (Videó útmutató)

Java SMS forráskód példa

A következő példa forráskód, amelyet Java programozási nyelven írtunk, szabadon felhasználható, egyszerűen implementálható a saját projektjébe, vagy módosítható más projektekhez vagy alkalmazásokhoz. Ha szeretné futtatni ezt a példakódot, csak létre kell hoznia egy új Java alkalmazást egyetlen Java osztállyal, és futtatnia kell a projektet, ahogyan azt a lépésenkénti utasításokban és a fenti videóban láthatja.

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. lépés - Nyissa meg az Apache NetBeans IDE-t

Az első lépés egy olyan Java alkalmazás létrehozása, amely SMS üzeneteket tud küldeni, hogy megnyitjuk az Apache NetBeans IDE-t a számítógépünkön. Az Apache NetBeans szerkesztőket, varázslókat és sablonokat biztosít, amelyek segítenek Java, PHP és sok más nyelven alkalmazásokat létrehozni. Ha még nem töltötte le az Apache NetBeans-t, letöltheti az Előfeltételek részben. A telepítés után csak meg kell nyitnia az asztalról, ahogyan az az 1. ábrán látható.

apache netbeans ide megnyitása
1. ábra - Az Apache NetBeans IDE megnyitása

2. lépés - Hozzon létre egy új Java projektet

Miután megnyitotta az Apache NetBeans IDE-t, a főablak jelenik meg. Itt létrehozhatja azt a Java alkalmazást, amelyre szükség van az SMS üzenetek küldéséhez. Ehhez, ahogyan az a 2. ábrán látható, kattintson a 'Fájl' menüpontra az eszköztáron, és itt válassza ki az 'Új projekt...' lehetőséget.

új java projekt létrehozása
2. ábra - Új Java projekt létrehozása

3. lépés - Válassza ki a Java alkalmazást

Ezután egy új ablak jelenik meg, amely tartalmazza az összes olyan projekt típust, amelyet létre lehet hozni az Apache NetBeans-ben. Itt létrehozhat egy egyszerű Java alkalmazást, vagy választhat bonyolultabb típusú projektek közül is. Ehhez a példához használhatja az egyszerű Java alkalmazást, ezért válassza ki a listából, és ahogyan a 3. ábra mutatja, kattintson a Tovább gombra.

java alkalmazás projekt típusának kiválasztása
3. ábra - Java alkalmazás projekt típusának kiválasztása

4. lépés - Konfigurálja a Java alkalmazást

A következő lépésben néhány alapvető beállítást kell elvégeznie a Java alkalmazáshoz. Ahogyan a 4. ábra mutatja, adhat nevet a projektnek. Beállíthatja a projekt helyét is, és végül megadhat egy nevet a csomagnak is. Ha befejezte a konfigurálást, csak kattintson a Befejezés gombra.

projektnév és csomag kiválasztása
4. ábra - Projektnév és csomag kiválasztása

5. lépés - Hozzon létre egy új Java osztályt

A létrehozott Java alkalmazás projekt üres, tehát nem tartalmaz forráskódot tartalmazó fájlt, ezért létre kell hoznia egyet. Ehhez válassza ki a projekt csomagját, és kattintson a jobb egérgombbal. A felugró ablakból, ahogyan az az 5. ábrán látható, válassza az Új lehetőséget, majd kattintson a 'Java osztály...' lehetőségre, hogy létrehozzon egy új Java osztályt az alkalmazásában.

új osztály létrehozása
5. ábra - Új osztály létrehozása

6. lépés - Konfigurálja a Java osztályt

A Java osztály létrehozásának befejezése előtt meg kell adnia egy nevet az osztálynak. Ez könnyen megtehető, ahogyan a 6. ábra mutatja. Miután megadta a megfelelő nevet a Java osztálynak, csak kattintson a Befejezés gombra, hogy sikeresen létrehozza a Java osztályt.

nevet ad az új osztálynak
6. ábra - Nevet ad az új osztálynak

7. lépés - Illessze be a forráskódot

A következő dolog, amit meg kell tennie, hogy beilleszti a példakódot a Java alkalmazásába. Ehhez csak görgessen fel a példakódhoz, másolja ki a teljes forráskódot a vágólapra, és illessze be az újonnan létrehozott Java osztályba. Ezen a ponton már futtathatja a Java alkalmazást, ezért csak kattintson a Futtatás gombra az eszköztáron. Az első futtatáskor, ahogyan a 7. ábra mutatja, ki kell választania a fő osztályt a végrehajtáshoz. Tehát csak válassza ki a HttpApiTester osztályt, és kattintson a 'Fő osztály kiválasztása' lehetőségre.

kód beillesztése a weboldalról, majd fő osztály kiválasztása
7. ábra - Kód beillesztése a weboldalról, majd fő osztály kiválasztása

8. lépés - Az alkalmazás eredményének megtekintése

Ha mindent helyesen végzett eddig, az alkalmazás elindul, és láthatja az eredményt a konzol ablakban, ahogyan a 8. ábra mutatja. Ez az ablak kiírja az SMS Gateway felé küldött HTTP kérést, és az SMS Gateway válaszát is, amely jelzi, hogy az SMS üzenet kézbesítése sikeres volt-e vagy sem.

a program elindul és megjelenik az eredmény
8. ábra - A program elindul és megjelenik az eredmény

9. lépés - Ellenőrizze a küldés eredményét az Ozeki naplóban

Az Ozeki 10 SMS Gateway-ben nyomon követheti, hogy az alkalmazása milyen üzeneteket küldött, mivel a HTTP API szolgáltatás naplózza minden eseményt, amely a működése során történt. Tehát, miután megnyitotta az SMS Gateway-t, és kiválasztotta a HTTP API szolgáltatás részleteit, láthatja az eseményeket. Ahogyan a 9. ábra mutatja, a szolgáltatás naplózott egy eseményt, amikor a példa Java alkalmazás HTTP kérést küldött a szolgáltatásnak.

ellenőrizze a http api szolgáltatás naplóit
9. ábra - A HTTP API szolgáltatás naplóinak ellenőrzése

Az SMS Gateway üzenetfeldolgozásának módját szintén visszanézheti az események alapján. Ehhez nyissa meg a HTTP API felhasználói kapcsolatot, amelyet korábban konfigurálnia kellett. A 10. ábra bemutatja, hogyan kezeli a kapcsolat az HTTP kérést, és hogyan küldi el az üzenetet a címzettnek, akit a Java alkalmazásában megadott.

ellenőrizze a http api felhasználó naplóit
10. ábra - A HTTP API felhasználó naplóinak ellenőrzése

Összefoglalás

Ebből a cikkből megtanulta, hogyan küldhet SMS-t Javából. Ez azt jelenti, hogy SMS szolgáltatásokat implementálhat Java alkalmazásaiba. Ennek a megoldásnak az alapja az Ozeki SMS Gateway. Ez azt jelenti, hogy nem lesznek teljesítményproblémái vagy késleltetései az SMS küldés során. Így Java megoldásai több ügyfél igényt elégíthetnek ki, és sokoldalúbbak lesznek. Emellett az információáramlás is gyorsabbá és könnyebbé válik.

A rendszer jobb megértéséhez nyugodtan tekintse meg az Ozeki oktatóoldalait az SMS fogadásáról Javában, vagy próbálja meg implementálni az SMS szolgáltatásokat más projektekben. Például, használja az HTTP SMS API-t PHP-val.

A következő lépés az, hogy letölti az Ozeki SMS Gateway-t és azonnal elkezdheti a fejlesztést!

More information