Jak odeslat SMS z Javy
Následující příklad konzolové aplikace napsané v programovacím jazyce Java vám ukáže způsob, jak můžete odesílat HTTP požadavky na SMS bránu a také získat odpověď. Tyto HTTP požadavky lze použít pro odesílání SMS zpráv a můžete snadno upravit detaily SMS zprávy změnou proměnných, které obsahují všechny informace týkající se SMS zprávy.
Co je Java SMS API?
Java SMS API vám umožňuje implementovat SMS služby do vaší Java aplikace. API komunikuje s SMS bránou pomocí HTTP požadavků, které odesílají zprávu a vracejí odpověď.
Předpoklady
- Nainstalované Apache NetBeans IDE 12.0
- Nainstalovaná Ozeki 10 SMS brána
- Nakonfigurovaný HTTP API uživatel
Odeslání SMS z Javy
- Otevřete Apache NetBeans IDE
- Klikněte na 'New project...'
- Vytvořte novou Java aplikaci
- Pojmenujte projekt a balíček
- Vytvořte novou třídu v Javě
- Zkopírujte a vložte níže uvedený příklad zdrojového kódu
- Spusťte Java aplikaci
- V případě potřeby vyberte hlavní třídu
Příklad zdrojového kódu pro SMS v Javě
Následující příklad zdrojového kódu napsaný v programovacím jazyce Java je volně k použití, můžete jej jednoduše implementovat do svého projektu nebo upravit zdrojový kód pro použití v jiných projektech nebo aplikacích. Pokud chcete tento příklad spustit, stačí vytvořit novou Java aplikaci s jednou třídou a spustit projekt, jak je vidět v návodu kroků a ve výše uvedeném videu.
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()); } } }
Krok 1 – Otevřete Apache NetBeans IDE
Prvním krokem k vytvoření Java aplikace, která umí odesílat SMS zprávy, je otevření Apache NetBeans IDE ve vašem počítači. Apache NetBeans poskytuje editory, průvodce a šablony, které vám pomohou vytvářet aplikace v Javě, PHP a mnoha dalších jazycích. Pokud jste Apache NetBeans ještě nestáhli, můžete si jej stáhnout v sekci Předpoklady. Po instalaci jej stačí otevřít z plochy, jak ukazuje obrázek 1.
Krok 2 – Vytvořte nový Java projekt
Po otevření Apache NetBeans IDE se zobrazí hlavní okno. Zde můžete vytvořit Java aplikaci potřebnou k odesílání SMS zpráv. Jak vidíte na obrázku 2, klikněte na panelu nástrojů na „Soubor“ a zde vyberte možnost „Nový projekt...“.
Krok 3 – Vyberte Java aplikaci
Dále se objeví nové okno obsahující všechny typy projektů, které lze v Apache NetBeans vytvořit. Zde můžete vytvořit jednoduchou Java aplikaci nebo vybrat z pokročilejších typů projektů. Pro tento příklad můžete použít jednoduchou Java aplikaci, takže ji vyberte ze seznamu a jako na obrázku 3 klikněte na Další.
Krok 4 – Nakonfigurujte Java aplikaci
V dalším kroku je třeba provést základní konfiguraci Java aplikace. Jak vidíte na obrázku 4, můžete zadat název projektu. Můžete také nastavit umístění projektu a nakonec můžete určit i název balíčku. Po dokončení konfigurace klikněte na Dokončit.
Krok 5 – Vytvořte novou Java třídu
Vytvořený projekt Java aplikace je prázdný, takže neobsahuje žádný soubor se zdrojovým kódem, proto je třeba jej vytvořit. Za tímto účelem vyberte balíček vašeho projektu a klikněte pravým tlačítkem myši. Z rozbalovacího okna, jak ukazuje obrázek 5, vyberte Nový a poté klikněte na „Java třída...“ pro vytvoření nové Java třídy ve vaší aplikaci.
Krok 6 – Nakonfigurujte Java třídu
Před dokončením vytváření Java třídy je třeba zadat název třídy. To lze snadno provést, jak ukazuje obrázek 6. Po zadání správného názvu Java třídy klikněte na tlačítko Dokončit pro úspěšné vytvoření Java třídy.
Krok 7 – Vložte zdrojový kód
Další věc, kterou je třeba udělat, je vložení ukázkového kódu do vaší Java aplikace. Za tímto účelem přejděte nahoru k ukázkovému kódu, zkopírujte celý zdrojový kód do schránky a vložte jej do nově vytvořené Java třídy. V tomto okamžiku můžete spustit Java aplikaci, takže klikněte na tlačítko Spustit na panelu nástrojů. Při prvním spuštění, jak ukazuje obrázek 7, je třeba vybrat hlavní třídu pro spuštění. Vyberte tedy třídu HttpApiTester a klikněte na „Vybrat hlavní třídu“.
Krok 8 – Podívejte se na výsledek aplikace
Pokud jste vše udělali správně, aplikace se spustí a výsledek uvidíte v okně konzoly, jak ukazuje obrázek 8. Toto okno zobrazuje HTTP požadavek, který byl odeslán do SMS brány, a také odpověď od SMS brány, která indikuje, zda bylo doručení SMS zprávy úspěšné.
V Ozeki 10 SMS Gateway můžete sledovat, jaké zprávy byly odeslány vaší aplikací, protože služba HTTP API zaznamenává každou událost, která nastane během jejího provozu. Po otevření SMS Gateway a výběru detailů služby HTTP API uvidíte všechny události. Jak ukazuje obrázek 9, služba zaznamenala událost, když příkladová Java aplikace odeslala HTTP požadavek na službu.
Způsob, jakým SMS Gateway zpracovává zprávy, lze také zobrazit prostřednictvím událostí. Pro to otevřete připojení HTTP API User, které jste museli předtím nakonfigurovat. Obrázek 10 ukazuje, jak připojení zpracovává HTTP požadavek a odesílá zprávu příjemci, kterého jste zadali ve své Java aplikaci.
Shrnutí
V tomto článku jste se naučili, jak odesílat SMS z Javy. To znamená, že můžete implementovat SMS služby do svých Java aplikací. Základem tohoto řešení je Ozeki SMS Gateway. To znamená, že nebudete mít problémy s výkonem ani žádné zpoždění při odesílání SMS. Tímto způsobem mohou vaše Java řešení splňovat více potřeb zákazníků a budou univerzálnější. Také umožní rychlejší a snadnější tok informací.
Pro lepší pochopení celého systému si projděte výukové stránky Ozeki o příjmu SMS v Javě, nebo zkuste implementovat SMS služby do dalších projektů. Například, použijte HTTP SMS API s PHP.
Dalším krokem je stáhnout Ozeki SMS Gateway a začít s vývojem hned teď!
More information