Wie man eine SMS in Java empfängt
Der einfachste Weg, SMS von Java aus zu senden, ist die Verwendung der integrierten HTTP/Rest-SMS-API von Ozeki SMS Gateway. Wenn Sie diese API verwenden, senden Sie SMS-Nachrichten, indem Sie eine HTTP-Post-Anfrage an das SMS-Gateway stellen. Die HTTP-Post-Anfrage wird eine Nachricht im JSON-Format enthalten. Das SMS-Gateway wird diese SMS an das Empfängertelefon senden und eine HTTP-200-OK-Antwort auf Ihre Anfrage zurückgeben.
Java-Code zum Senden einer SMS an ein Mobiltelefon
Das Java-SMS-Codebeispiel unten zeigt, wie Sie SMS mit der HTTP-Rest-SMS-API von Ozeki SMS Gateway unter Verwendung der Java Ozeki.Libs.Rest-Bibliothek empfangen können. Diese Bibliothek wird Ihnen kostenlos zur Verfügung gestellt, und Sie können sie in Ihren Projekten verwenden und modifizieren.
Main.javaimport Ozeki.Libs.Rest.*; public class Main { public static void main(String[] args) { var configuration = new Configuration(); configuration.Username = "http_user"; configuration.Password = "qwe123"; configuration.ApiURL = "http://127.0.0.1:9509/api"; var api = new MessageApi(configuration); var result = api.DownloadIncoming(); System.out.println(result); } }
Wie man das Java-SMS-Beispiel verwendet:
Sie können die MessageApi-Klasse verwenden, um die SMS vom SMS-Gateway zu empfangen. Das SMS-Gateway leitet Nachrichten aus dem Posteingangsordner an Sie weiter.
ReceiveSms.java herunterladen
Der in diesem Artikel erklärte Quellcode kann kostenlos heruntergeladen, verwendet und modifiziert werden.
Download: ReceiveSms.java.zip (89.6Kb)
Was befindet sich in der ReceiveSms.java.zip-Datei?
Die ReceiveSms.java.zip-Datei enthält die Ozeki-Bibliothek, die Ihnen alle notwendigen Werkzeuge zum Senden, Markieren, Empfangen und Löschen von SMS-Nachrichten bietet. Sie finden auch eine Main.java-Datei im Projekt, die den Beispielcode enthält, der Ihnen zeigt, wie Sie SMS-Nachrichten empfangen können. Dieser Beispielcode ist unten aufgeführt.
Wie man SMS von Java empfängt (Schnelle Schritte)
Um SMS von Java zu empfangen:
- Ozeki SMS Gateway installieren
- Ozeki SMS Gateway mit dem Mobilfunknetz verbinden
- Eine Test-SMS von der Ozeki-GUI senden
- Einen HTTP-SMS-API-Benutzer erstellen
- Apache NetBeans
- Ein Projekt namens ReceiveSms erstellen
- Den Code in eine neu erstellte Main.java-Datei einfügen oder die Main.java-Datei in der .zip verwenden
- Eine API zum Empfangen Ihrer Nachrichten erstellen
- Die DownloadIncoming-Methode verwenden, um Ihre Nachricht zu empfangen
- Die Antwortnachricht auf der Konsole lesen
- Die Protokolle im SMS-Gateway überprüfen
Ozeki SMS Gateway installieren und einen HTTP-API-Benutzer erstellen
Um SMS von Java aus senden, empfangen und löschen zu können, müssen Sie zunächst Ozeki SMS Gateway installieren. Das SMS-Gateway kann auf demselben Computer installiert werden, auf dem Sie Ihren Java-Code in Apache NetBeans entwickeln. Nach der Installation ist der nächste Schritt, Ozeki SMS Gateway mit dem Mobilfunknetz zu verbinden. Sie können Erstellung eines HTTP-SMS-API-Benutzerkontos. Erstellen Sie einen Benutzer mit dem Benutzernamen "http_user" und dem Passwort "qwe123", damit das Beispiel ohne Änderungen funktioniert.
Nachdem die Umgebung eingerichtet ist, können Sie Ihren Java-Code ausführen.
HTTP-API-URL zum Empfangen von SMS von Java
Um SMS von Java zu empfangen, muss Ihre Java-Anwendung eine HTTP-Anfrage an das SMS-Gateway stellen. Die API-URL wird unten angezeigt. Beachten Sie, dass die IP-Adresse (127.0.0.1) durch die IP-Adresse Ihres SMS-Gateways ersetzt werden sollte. Wenn Ozeki SMS Gateway auf demselben Computer installiert ist, auf dem die Java-SMS-Anwendung läuft, kann dies 127.0.0.1 sein. Wenn es auf einem anderen Computer installiert ist, sollte es die IP-Adresse dieses Computers sein.
http://127.0.0.1:9509/api?action=rest
HTTP-Authentifizierung zum Empfangen von SMS von Java
Um den Java-SMS-Client zu authentifizieren, müssen Sie den Benutzernamen und das Passwort in einer base64-kodierten Zeichenkette an den Server in einer HTTP-Anfrage senden. Das verwendete Format ist: base64(Benutzername+":"+Passwort). In Java können Sie den folgenden Code verwenden, um diese Kodierung durchzuführen:
var usernamePassword = username + ":" + password; var encodedUsernamePassword = usernamePassword.getBytes(); return "Basic " + Base64.getEncoder().encodeToString(encodedUsernamePassword);
Wenn Sie beispielsweise den Benutzernamen 'http_user' und das Passwort 'qwe123' kodieren, erhalten Sie die folgende base64-kodierte Zeichenkette: aHR0cF91c2VyOnF3ZTEyMw==. Zum Senden
HTTP-Anfrageheader zum Empfangen von SMS von Java
Um SMS-Nachrichten zu löschen, müssen Sie die folgenden Zeilen als Header in die HTTP-Anfrage aufnehmen. Beachten Sie, dass wir einen Content-Type- und einen Authorization-Header einfügen.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
HTTP-Anfrage zum Empfangen von SMS von Java
Um die SMS zu löschen, sendet Ihre Java-Anwendung eine HTTP-Anfrage ähnlich der untenstehenden. Beachten Sie, dass diese Anfrage einen HTTP-Header-Teil und einen HTTP-Body-Teil enthält. Der HTTP-Body ist ein JSON-kodierter Datenstring. Er enthält die Nummer des Empfängers und den Text der Nachricht.
GET /api?action=receivemsg&folder=inbox HTTP/1.1 HTTP2-Settings: AAEAAEAAAAIAAAABAAMAAABkAAQBAAAAAAUAAEAA Connection: Upgrade, HTTP2-Settings Upgrade: h2c Content-Length: 0 Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9509 User-Agent: Java-http-client/16.0.1
HTTP-Antwort empfangen vom Java-SMS-Beispiel
Sobald das SMS-Gateway diese Anfrage erhält, generiert es eine HTTP-Antwort. Die HTTP-Antwort enthält einen Statuscode, der anzeigt, ob die SMS-Sendeanfrage erfolgreich war oder nicht. Sie gibt auch eine JSON-kodierte Struktur zurück, die Ihnen nützliche Details über den Nachrichtenversand liefert.
HTTP/1.1 200 OK User-Agent: OZEKI 10.3.120 (www.myozeki.com) Content-Type: application/json; charset=utf8 Last-Modified: Fri, 11 Jun 2021 13:37:11 GMT Server: 10/10.3.120 Transfer-Encoding: chunked { "http_code": 200, "response_code": "SUCCESS", "response_msg": "", "data": { "folder": "inbox", "limit": "1000", "data": [ { "message_id": "0401f09a-5edb-4728-9bbc-0426fd9bea09", "from_connection": "http_user@localhost", "from_address": "+36201111111", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Hello world 1", "create_date": "2021-06-11 14:01:15", "valid_until": "2021-06-18 14:01:15", "time_to_send": "2021-06-11 14:01:15", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ] }, { "message_id": "5302e7df-18c4-4e01-82e7-181967bc8516", "from_connection": "http_user@localhost", "from_address": "+36202222222", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Hello world 2", "create_date": "2021-06-11 14:01:15", "valid_until": "2021-06-18 14:01:15", "time_to_send": "2021-06-11 14:01:15", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ] }, { "message_id": "95c60379-e541-4be1-b698-adfde4e425c8", "from_connection": "http_user@localhost", "from_address": "+36203333333", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Hello world 3", "create_date": "2021-06-11 14:01:15", "valid_until": "2021-06-18 14:01:15", "time_to_send": "2021-06-11 14:01:15", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ] } ] } }
Wie man SMS von Java aus mit der Java-SMS-API sendet (Video-Tutorial)
Dieses Video zeigt Ihnen, wie Sie ein neues Projekt in Apache NetBeans erstellen und es ReceiveSMS nennen. Sobald die Lösung erstellt ist, werden Sie möglicherweise bemerken, dass es einen Ordner namens <default package> in Ihrem Projekt innerhalb des Source Packages-Ordners gibt. Hier werden Sie die Main.java-Datei erstellen oder einfügen. Dann müssen Sie den Ozeki-Ordner in den Source Packages-Ordner einfügen und das sind alle Vorbereitungen, die Sie benötigen, um eine SMS mit Java zu empfangen.
Java-SMS-Empfangsbeispiel: Main.java
Wie man überprüft, ob die SMS vom HTTP-Benutzer akzeptiert wurde
Nachdem die Anfrage übermittelt wurde, ist es eine gute Idee, Ihr SMS-Gateway zu überprüfen, um zu sehen, was es empfangen hat. Sie können das Protokoll überprüfen, indem Sie die Details des HTTP-Benutzers in der Ozeki SMS Gateway-Verwaltungskonsole öffnen. Das folgende Video zeigt Ihnen, worauf Sie achten müssen.
Zusammenfassung
Das Hauptziel dieses Artikels war es, den SMS-Empfang in Java mit Hilfe des Ozeki SMS Gateways zu demonstrieren. Wenn die Schritte sorgfältig befolgt wurden, sollte die Nachrichtenübertragung vom Posteingang zum Java-Programm des Benutzers kein Problem mehr darstellen. Wenn Sie eingehende Nachrichten in einem Java-Programm sammeln möchten, ist diese Lösung eine perfekte Möglichkeit dazu. Das Ozeki SMS Gateway kann von der Ozeki-Website heruntergeladen werden und kann in einer Testphase kostenlos verwendet werden, sodass Sie sicherstellen können, dass diese Anwendung für Sie geeignet ist.
Setzen Sie die Lektüre auf der Tutorial-Seite von Ozeki fort, ähnliche Anleitungen finden Sie zu Themen wie Löschen in Java.
Das Einzige, was jetzt noch zu tun ist, ist das Ozeki SMS Gateway herunterzuladen und die Arbeit zu beginnen!
More information
- Java SMS mit der HTTP-REST-API senden (Codebeispiel)
- Java mehrere SMS mit der HTTP-REST-API senden (Codebeispiel)
- Java SMS mit der HTTP-REST-API planen (Codebeispiel)
- Java SMS mit der HTTP-REST-API löschen (Codebeispiel)
- Java SMS mit der HTTP-REST-API empfangen (Codebeispiel)
- Github: Java SMS API