Primire SMS în Java
Ghidul de pe această pagină vă va oferi o scurtă introducere despre cum puteți obține mesajele primite de la SMS Gateway în aplicația dvs. Java. Această operațiune este demonstrată printr-un simplu cod Java care utilizează cereri HTTP pentru a colecta mesajele primite de la SMS Gateway. Dacă urmați acest ghid, veți învăța cum puteți crea o aplicație Java exemplu care preia mesajele din dosarul de primite și veți putea vedea cum să testați soluția. Deci, să începem.
Ce este un API SMS pentru Java?API-ul SMS pentru Java vă permite să implementați servicii SMS în aplicația dvs. Java. API-ul comunică cu SMS Gateway folosind cereri HTTP care trimit mesajul și returnează un mesaj de răspuns.
Cerințe preliminarePrimire SMS în Java
- Deschideți Apache NetBeans IDE
- Creați o nouă aplicație Java
- Creați o nouă clasă Java
- Copiați și lipiți codul sursă exemplu de mai jos
- Tastați 'https://localhost:9515' în browser pentru a deschide SMS Gateway
- Selectați conexiunea HTTP Server și deschideți formularul HTML
- Trimiteți câteva mesaje de test
- Rulați aplicația Java pentru a primi mesajele
Codul exemplu Java de mai jos, care poate primi mesaje de la SMS Gateway, este liber de utilizat, îl puteți modifica sau folosi în proiectul dumneavoastră. Dacă doriți doar să testați soluția, trebuie să urmați instrucțiunile pas cu pas de mai jos sau puteți viziona videoclipul de mai sus pentru a învăța cum puteți crea aplicația Java exemplu care poate primi mesaje de la SMS Gateway.
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 "?"; } }
Pasul 1 - Deschideți Apache NetBeans IDE
Pentru a putea crea o aplicație Java, aveți nevoie de o aplicație capabilă să facă acest lucru. Una dintre aceste aplicații este Apache NetBeans IDE, care poate fi descărcată din secțiunea Cerințe preliminare de mai sus. Dacă aveți deja acest IDE, trebuie doar să îl deschideți de pe desktop, așa cum puteți vedea în Figura 1.
După ce ați deschis Apache NetBeans IDE, primul lucru pe care trebuie să îl faceți este să creați o aplicație Java. Pentru aceasta, selectați opțiunea 'New project..' din bara de instrumente. Prin această acțiune, va apărea o fereastră care conține toate proiectele disponibile care pot fi create în Apache NetBeans. Aici, selectați opțiunea Java application, ca în Figura 2, și în final, faceți clic pe 'Next'.
Înainte de a crea aplicația Java, trebuie să faceți câteva configurații. Aici, în acest meniu, trebuie să specificați un nume pentru proiect, puteți selecta și o locație pentru proiect. Numele pachetului poate fi specificat și aici. Dacă ați terminat cu toate configurațiile, faceți clic pe 'Finish', exact ca în Figura 3.
După ce ați creat aplicația Java, trebuie să creați o clasă Java, deoarece în acest moment nu conține încă nicio clasă. Pentru aceasta, faceți clic dreapta pe pachet, apoi 'New', și, așa cum arată Figura 4, faceți clic pe 'Java class...'. Apoi, trebuie să specificați un nume pentru clasa Java și, dacă ați terminat, faceți clic pe 'Create'.
În acest moment, aveți aplicația Java de care aveți nevoie, dar nu conține codul corect. Pentru a remedia acest lucru, trebuie să înlocuiți codul original cu codul exemplu de pe această pagină. Deci, mergeți la codul exemplu și copiați-l în clipboard folosind scurtătura de tastatură Ctrl+C. Apoi, mergeți la clasa Java creată și, mai întâi, ștergeți codul pe care îl găsiți aici. După aceea, apăsați Ctrl+V pentru a lipi codul exemplu în clasa Java, așa cum puteți vedea în Figura 5.
Înainte de a rula aplicația Java exemplu, aveți nevoie de câteva mesaje primite care pot fi colectate de către aplicație. SMS Gateway vă oferă posibilitatea de a simula mesajele primite, astfel încât să vă puteți testa soluția. Pentru aceasta, deschideți SMS Gateway și selectați conexiunea HTTP Server. Dacă nu aveți o conexiune HTTP Server, verificați cum să creați o conexiune HTTP Server. Aici, deschideți formularul HTML al acestei conexiuni și, ca în Figura 6, trimiteți câteva mesaje de test.
Ultimul pas al acestui ghid este să rulați aplicația Java. Aceasta este o operațiune simplă; tot ce trebuie să faceți este să faceți clic pe butonul 'Run' din Apache NetBeans, ca în Figura 7. Această acțiune rulează codul Java exemplu, care afișează cererea HTTP trimisă către SMS Gateway, apoi afișează și răspunsul de la SMS Gateway, care conține toate mesajele primite.
Acest ghid pe care l-ați citit vă oferă informații despre cum puteți primi mesaje SMS de la SMS Gateway folosind o aplicație Java. Folosind API-ul nostru Java SMS, puteți profita de resursele limbajului Java și le puteți folosi pentru a controla SMS Gateway. API-ul Java combinat cu Ozeki SMS Gateway va crea un sistem puternic de trimitere SMS, capabil să trimită până la 1000 SMS pe secundă.
Dacă doriți să aflați mai multe informații utile despre avantajele altor soluții API similare, vizitați pagina noastră despre Python pentru a gestiona traficul SMS.
Dacă aveți nevoie de redirecționare e-mail la SMS și nu ați făcut-o deja, Descărcați Ozeki SMS Gateway acum și creați această configurație!