Comment envoyer un SMS depuis Java
L'exemple suivant d'application console écrite en langage de programmation Java va vous montrer comment envoyer des requêtes HTTP vers la passerelle SMS et obtenir également le message de réponse. Ces requêtes HTTP peuvent être utilisées pour envoyer des SMS et vous pouvez facilement configurer les détails du message SMS en modifiant les variables qui contiennent toutes les informations concernant le message SMS.
Qu'est-ce qu'une API SMS Java ?
L'API SMS Java vous permet d'intégrer des services SMS dans votre application Java. L'API communique avec la passerelle SMS en utilisant des requêtes HTTP qui envoient le message et renvoient un message de réponse.
Prérequis
Envoyer un SMS depuis Java
- Ouvrez Apache NetBeans IDE
- Cliquez sur 'Nouveau projet...'
- Créez une nouvelle application Java
- Nommez le projet et le package
- Créez une nouvelle classe Java
- Copiez-collez l'exemple de code source ci-dessous
- Exécutez l'application Java
- Sélectionnez la classe principale si nécessaire
Exemple de code source SMS Java
L'exemple de code source suivant, écrit en langage de programmation Java, est libre d'utilisation. Vous pouvez simplement l'implémenter dans votre projet, ou vous pouvez modifier le code source pour l'utiliser dans d'autres projets ou applications. Si vous souhaitez exécuter cet exemple de code, vous devez simplement créer une nouvelle application Java avec une seule classe Java et exécuter le projet comme vous pouvez le voir dans les instructions étape par étape et la vidéo ci-dessus.
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("Envoi de la requête : " + sendString.toString()); URL url = new URL(sendString.toString()); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setRequestMethod("GET"); BufferedReader br = null; System.out.println("Réponse HTTP reçue : "); 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()); } } }
Étape 1 - Ouvrir Apache NetBeans IDE
La première étape pour créer une application Java capable d'envoyer des SMS est d'ouvrir Apache NetBeans IDE sur votre ordinateur. Apache NetBeans fournit des éditeurs, des assistants et des modèles pour vous aider à créer des applications en Java, PHP et bien d'autres langages. Si vous n'avez pas encore téléchargé Apache NetBeans, vous pouvez le télécharger depuis la section Prérequis. Après l'avoir installé, il vous suffit de l'ouvrir depuis votre bureau comme le montre la Figure 1.
Étape 2 - Créer un nouveau projet Java
Après avoir ouvert Apache NetBeans IDE, la fenêtre principale s'affiche. Ici, vous pouvez créer l'application Java nécessaire pour envoyer des SMS. Pour cela, comme le montre la Figure 2, cliquez sur 'Fichier' dans la barre d'outils, puis sélectionnez l'option 'Nouveau projet...'.
Étape 3 - Sélectionner une application Java
Ensuite, une nouvelle fenêtre s'ouvre, contenant tous les types de projets que vous pouvez créer dans Apache NetBeans. Ici, vous pouvez créer une simple application Java ou choisir parmi des types de projets plus avancés. Pour cet exemple, vous pouvez utiliser une simple application Java, alors sélectionnez-la dans la liste et, comme le montre la Figure 3, cliquez sur Suivant.
Étape 4 - Configurer l'application Java
Dans l'étape suivante, vous devez effectuer une configuration de base pour l'application Java. Comme le montre la Figure 4, vous pouvez donner un nom au projet. Vous pouvez également définir l'emplacement du projet et enfin spécifier un nom pour le package. Une fois la configuration terminée, cliquez simplement sur Terminer.
Étape 5 - Créer une nouvelle classe Java
Le projet d'application Java créé est vide, il ne contient donc aucun fichier de code source. Vous devez donc en créer un. Pour cela, sélectionnez le package de votre projet et faites un clic droit avec votre souris. Dans la fenêtre contextuelle, comme le montre la Figure 5, sélectionnez Nouveau, puis cliquez sur 'Classe Java...' pour créer une nouvelle classe Java dans votre application.
Étape 6 - Configurer la classe Java
Avant de terminer la création de la classe Java, vous devez spécifier un nom pour la classe. Cela peut être fait facilement, comme le montre la Figure 6. Après avoir donné un nom approprié à la classe Java, cliquez simplement sur le bouton Terminer pour créer la classe Java avec succès.
Étape 7 - Coller le code source
La prochaine chose à faire est de placer le code exemple dans votre application Java. Pour cela, remontez jusqu'au code exemple, copiez tout le code source dans votre presse-papiers et collez-le dans votre nouvelle classe Java. À ce stade, vous pouvez exécuter l'application Java en cliquant sur le bouton Exécuter dans la barre d'outils. Lors de la première exécution, comme le montre la Figure 7, vous devez sélectionner la classe principale pour l'exécution. Sélectionnez donc la classe HttpApiTester et cliquez sur 'Sélectionner la classe principale'.
Étape 8 - Voir le résultat de l'application
Si vous avez tout fait correctement jusqu'à présent, l'application démarre et vous pourrez voir le résultat dans la fenêtre de console, comme le montre la Figure 8. Cette fenêtre affiche la requête HTTP qui a été initiée et envoyée à la passerelle SMS, ainsi que la réponse de la passerelle SMS qui indique si la livraison du SMS a réussi ou non.
Dans Ozeki 10 SMS Gateway, vous pouvez suivre les messages envoyés par votre application, car le service HTTP API enregistre chaque événement survenu pendant son activation. Ainsi, après avoir ouvert le SMS Gateway et sélectionné les détails du service HTTP API, vous pourrez voir les événements. Comme le montre la Figure 9, le service a enregistré un événement lorsque l'application Java exemple a envoyé la requête HTTP au service.
La manière dont SMS Gateway traite les messages peut également être visualisée via les événements. Pour cela, ouvrez la connexion utilisateur HTTP API, que vous avez dû configurer auparavant. La Figure 10 montre comment la connexion gère la requête HTTP et envoie le message au destinataire que vous avez spécifié dans votre application Java.
Résumé
Vous avez appris à envoyer des SMS depuis Java grâce à cet article. Cela signifie que vous pouvez implémenter des services SMS dans vos applications Java. La base de cette solution est le Ozeki SMS Gateway. Cela signifie que vous n'aurez aucun problème de performance ou de latence lors de l'envoi de SMS. Ainsi, vos solutions Java pourront satisfaire davantage de besoins clients et seront plus polyvalentes. Elles permettront également un flux d'information plus rapide et plus facile.
Pour mieux comprendre l'ensemble du système, n'hésitez pas à consulter les pages de tutoriel Ozeki sur la réception des SMS en Java, ou essayez d'implémenter des services SMS dans d'autres projets. Par exemple, utilisez l'API SMS HTTP avec PHP.
La prochaine étape est de télécharger le Ozeki SMS Gateway et de commencer à développer dès maintenant !
More information