SMS fogadása Java nyelven
Az oldalon található útmutató rövid bevezetést nyújt arról, hogyan kérheted le a fogadott üzeneteket az SMS Gateway-ből Java alkalmazásodba. A műveletet egy egyszerű Java kód demonstrálja, amely HTTP kéréseket használ a bejövő üzenetek gyűjtéséhez az SMS Gateway-ből. Ha követed ezt az útmutatót, megtanulod, hogyan hozhatsz létre egy példa Java alkalmazást, amely lekéri az üzeneteket a beérkezett üzenetek mappájából, és láthatod, hogyan tesztelheted a megoldást. Szóval, kezdjük is el.
Mi az a Java SMS API?
A Java SMS API lehetővé teszi, hogy SMS szolgáltatásokat implementálj Java alkalmazásodba. Az API HTTP kéréseken keresztül kommunikál az SMS Gateway-vel, amely elküldi az üzenetet és választ küld vissza.
Előfeltételek
- Telepített Apache NetBeans IDE 12.0
- Telepített Ozeki 10 SMS Gateway
- Beállított HTTP Szerver kapcsolat
SMS fogadása Java nyelven
- Nyisd meg az Apache NetBeans IDE-t
- Hozz létre egy új Java alkalmazást
- Hozz létre egy új Java osztályt
- Másold be az alábbi példa forráskódot
- Írd be a böngésződbe a 'https://localhost:9515' címet az SMS Gateway megnyitásához
- Válaszd ki a HTTP Szerver kapcsolatot és nyisd meg annak HTML űrlapját
- Küldj néhány teszt üzenetet
- Futtasd a Java alkalmazást az üzenetek lekéréséhez
Az alábbi Java SMS példakód, amely lekéri a bejövő üzeneteket az SMS Gateway-ből, szabadon felhasználható, módosíthatod vagy használhatod a projektjeidben. Ha csak tesztelni szeretnéd a megoldást, kövesd az alábbi lépésről lépésre útmutatót, vagy nézd meg a fenti videót, hogy megtanuld, hogyan hozhatsz létre egy példa Java alkalmazást, amely képes lekérni a bejövő üzeneteket az SMS Gateway-ből.
package ozeki; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.security.GeneralSecurityException; import java.security.cert.X509Certificate; import java.util.stream.Collectors; 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; import javax.xml.parsers.*; import org.xml.sax.InputSource; import org.w3c.dom.*; import java.io.*; public class ReceiveSMS { 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 httpUrl = "https://127.0.0.1:9508/"; String folder = "inbox"; String limit = "3"; sendString.append(httpUrl).append("api?action=receivemessage&username="). append(username).append("&password="). append(password).append("&folder=").append(folder). append("&limit=").append(limit).append("&afterdownload=delete"); 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 response = br.lines().collect(Collectors.joining("\n")); response = response.substring(response.indexOf('\n')+1); response = response.substring(response.indexOf('\n')+1); DisplayMessages(response); } else { br = new BufferedReader(new InputStreamReader(con.getErrorStream())); String response = br.lines().collect(Collectors.joining("\n")); System.out.println(response); } } catch (IOException ex) { System.out.println(ex.getMessage()); } } static void DisplayMessages(String response) { try{ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); InputSource is = new InputSource(); is.setCharacterStream(new StringReader(response)); Document doc = db.parse(is); NodeList nodes = doc.getElementsByTagName("message"); for (int i = 0; i < nodes.getLength(); i++) { Element element = (Element) nodes.item(i); NodeList originator = element.getElementsByTagName("originator"); Element line = (Element) originator.item(0); String sender = getCharacterDataFromElement(line); NodeList messagedata = element.getElementsByTagName("messagedata"); line = (Element) messagedata.item(0); String text = getCharacterDataFromElement(line); DisplayMessage(sender, text); } } catch (Exception ex) { System.out.println("The inbox is empty"); } } public static void DisplayMessage(String sender, String text) { System.out.println(sender + ": "+ text); } public static String getCharacterDataFromElement(Element e) { Node child = e.getFirstChild(); if (child instanceof CharacterData) { CharacterData cd = (CharacterData) child; return cd.getData(); } return "?"; } }
1. lépés - Nyisd meg az Apache NetBeans IDE-t
Ahhoz, hogy létre tudj hozni egy Java alkalmazást, szükséged van egy olyan programra, amely ezt képes megtenni. Az egyik ilyen program az Apache NetBeans IDE, amely letölthető a fenti Előfeltételek részben. Ha már rendelkezel ezzel az IDE-vel, egyszerűen csak nyisd meg az asztalodról, ahogyan az az 1. ábrán látható.
2. lépés - Hozz létre egy új Java alkalmazást
Miután megnyitottad az Apache NetBeans IDE-t, az első dolog, amit tenned kell, az egy Java alkalmazás létrehozása. Ehhez válaszd ki az 'Új projekt...' opciót az eszköztárból. Ezzel a művelettel megjelenik egy ablak, amely tartalmazza az összes elérhető projektet, amelyet létre lehet hozni az Apache NetBeans-ban. Itt válaszd ki a Java alkalmazás opciót, ahogyan az a 2. ábrán látható, majd kattints a 'Tovább' gombra.
3. lépés - Konfiguráld a Java alkalmazást
A Java alkalmazás létrehozása előtt néhány beállítást kell elvégezned rajta. Ebben a menüben meg kell adnod egy nevet a projektnek, választhatsz egy helyet a projekt számára, és itt is megadhatod a csomag nevét. Ha minden beállítást elvégeztél, egyszerűen kattints a 'Befejezés' gombra, ahogyan az a 3. ábrán látható.
4. lépés - Hozz létre egy Java osztályt
Miután létrehoztad a Java alkalmazást, létre kell hoznod egy Java osztályt, mivel ezen a ponton még nem tartalmaz osztályt. Ehhez jobb klikkel válaszd ki a csomagot, majd 'Új', és ahogyan a 4. ábra mutatja, kattints a 'Java osztály...' opcióra. Ezután adj meg egy nevet a Java osztálynak, és ha befejezted, kattints a 'Létrehozás' gombra.
5. lépés - Cseréld le a Java kódot erről az oldalról
Ezen a ponton már rendelkezel a szükséges Java alkalmazással, de még nem tartalmazza a megfelelő kódot. Ennek javításához le kell cserélned az eredeti kódot az oldalon található példakódra. Tehát menj az példakódhoz, és másold a vágólapodra a Ctrl+C billentyűkombinációval. Ezután menj a létrehozott Java osztályhoz, és először töröld a megtalálható kódot. Ezután nyomd meg a Ctrl+V billentyűkombinációt a példakód beillesztéséhez a Java osztályba, ahogyan az az 5. ábrán látható.
6. lépés - Küldj néhány teszt üzenetet
Mielőtt futtatnád a példa Java alkalmazást, szükséged van néhány bejövő üzenetre, amelyet az alkalmazás össze tud gyűjteni. Az SMS Gateway lehetőséget biztosít a bejövő üzenetek szimulálására, így tesztelheted a megoldásodat. Ehhez egyszerűen nyisd meg az SMS Gateway-t és válaszd ki a HTTP Szerver kapcsolatot. Ha nincs HTTP Szerver kapcsolatod, nézd meg hogyan hozz létre egy HTTP Szerver kapcsolatot. Itt nyisd meg a kapcsolat HTML űrlapját, és ahogyan a 6. ábra mutatja, küldj néhány teszt üzenetet.
7. lépés - Futtasd a Java alkalmazást
Az útmutató utolsó lépése a Java alkalmazás futtatása. Ez egy egyszerű művelet; mindössze annyit kell tenned, hogy rákattintasz a 'Futtatás' gombra az Apache NetBeans-ban, ahogyan az a 7. ábrán látható. Ez a művelet futtatja a példa Java kódot, amely kiírja az SMS Gateway-nek küldött HTTP kérést, majd kiírja az SMS Gateway válaszát is, amely tartalmazza az összes bejövő üzenetet.
Összefoglalás
Az imént elolvasott útmutató információt nyújt arról, hogyan fogadhatsz SMS üzeneteket az SMS Gateway-ből Java alkalmazás segítségével. Java SMS API-nk segítségével kihasználhatod a Java nyelv erőforrásait, és felhasználhatod az SMS Gateway irányítására. A Java API az Ozeki SMS Gateway-vel kombinálva egy erős SMS küldő rendszert alkot, amely másodpercenként akár 1000 SMS küldésére is képes.
Ha több hasznos információt szeretnél megtudni más hasonló API megoldások előnyeiről, látogass el a Python használata SMS forgalom kezeléséhez oldalainkra.
Ha e-mailről SMS továbbításra van szükséged, és még nem tetted meg, töltsd le az Ozeki SMS Gateway-t most és hozd létre ezt a beállítást!