Jak wysłać SMS z Javy

Poniższa przykładowa aplikacja konsolowa napisana w języku programowania Java pokaże Ci, jak możesz wysyłać żądania HTTP do Bramki SMS i otrzymywać wiadomość odpowiedzi. Te żądania HTTP mogą być używane do wysyłania wiadomości SMS, a szczegóły wiadomości SMS można łatwo skonfigurować, modyfikując zmienne zawierające wszystkie informacje dotyczące wiadomości SMS.

Co to jest Java SMS API?

Java SMS API umożliwia wdrożenie usług SMS w Twojej aplikacji Java. API komunikuje się z Bramką SMS za pomocą żądań HTTP, które wysyłają wiadomość i zwracają odpowiedź.

Wymagania wstępne

Wysyłanie SMS z Javy

  • Otwórz Apache NetBeans IDE
  • Kliknij „Nowy projekt...”
  • Utwórz nową aplikację Java
  • Nazwij projekt i pakiet
  • Utwórz nową klasę Java
  • Skopiuj i wklej przykładowy kod źródłowy poniżej
  • Uruchom aplikację Java
  • W razie potrzeby wybierz klasę główną

Wideo 1 - Jak wysłać SMS z Javy (Samouczek wideo)

Przykładowy kod źródłowy Java SMS

Poniższy przykładowy kod źródłowy napisany w języku programowania Java jest darmowy do użycia, możesz go łatwo zaimplementować w swoim projekcie lub zmodyfikować kod źródłowy, aby użyć go w innych projektach lub aplikacjach. Jeśli chcesz uruchomić ten przykładowy kod, wystarczy utworzyć nową aplikację Java z pojedynczą klasą Java i uruchomić projekt, jak widać w instrukcjach krok po kroku i filmie powyżej.

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 - Otwórz Apache NetBeans IDE

Pierwszym krokiem do stworzenia aplikacji Java, która może wysyłać wiadomości SMS, jest otwarcie Apache NetBeans IDE na twoim komputerze. Apache NetBeans dostarcza edytory, kreatory i szablony, które pomagają w tworzeniu aplikacji w językach Java, PHP i wielu innych. Jeśli jeszcze nie pobrałeś Apache NetBeans, możesz to zrobić w sekcji Wymagania wstępne. Po zainstalowaniu wystarczy otworzyć program z pulpitu, jak pokazano na Rysunku 1.

otwórz apache netbeans ide
Rysunek 1 - Otwórz Apache NetBeans IDE

Krok 2 - Utwórz nowy projekt Java

Po otwarciu Apache NetBeans IDE pojawia się główne okno. Tutaj możesz stworzyć aplikację Java potrzebną do wysyłania wiadomości SMS. W tym celu, jak pokazano na Rysunku 2, kliknij „Plik” na pasku narzędzi, a następnie wybierz opcję „Nowy projekt...”.

utwórz nowy projekt java
Rysunek 2 - Utwórz nowy projekt Java

Krok 3 - Wybierz aplikację Java

Następnie pojawia się nowe okno zawierające wszystkie typy projektów, które można utworzyć w Apache NetBeans. Tutaj możesz stworzyć prostą aplikację Java lub wybrać bardziej zaawansowane typy projektów. W tym przykładzie możesz użyć prostej aplikacji Java, więc wybierz ją z listy i, jak na Rysunku 3, kliknij Dalej.

wybierz typ projektu aplikacji java
Rysunek 3 - Wybierz typ projektu aplikacji Java

Krok 4 - Skonfiguruj aplikację Java

W kolejnym kroku musisz wykonać podstawową konfigurację aplikacji Java. Jak widać na Rysunku 4, możesz nadać nazwę projektowi, ustawić jego lokalizację oraz określić nazwę pakietu. Po zakończeniu konfiguracji kliknij Zakończ.

wybierz nazwę projektu i pakiet
Rysunek 4 - Wybierz nazwę projektu i pakiet

Krok 5 - Utwórz nową klasę Java

Utworzony projekt aplikacji Java jest pusty, więc nie zawiera żadnego pliku z kodem źródłowym. Musisz go utworzyć. W tym celu wybierz pakiet projektu i kliknij prawym przyciskiem myszy. Z menu podręcznego, jak pokazano na Rysunku 5, wybierz Nowy, a następnie kliknij „Klasa Java...”, aby utworzyć nową klasę w aplikacji.

utwórz nową klasę
Rysunek 5 - Utwórz nową klasę

Krok 6 - Skonfiguruj klasę Java

Przed zakończeniem tworzenia klasy Java musisz określić jej nazwę. Można to łatwo zrobić, jak pokazano na Rysunku 6. Po nadaniu odpowiedniej nazwy klasie kliknij przycisk Zakończ, aby pomyślnie utworzyć klasę Java.

nadaj nowej klasie nazwę
Rysunek 6 - Nadaj nowej klasie nazwę

Krok 7 - Wklej kod źródłowy

Następnie musisz umieścić przykładowy kod w swojej aplikacji Java. W tym celu przewiń do przykładowego kodu, skopiuj cały kod źródłowy do schowka i wklej go do nowo utworzonej klasy Java. W tym momencie możesz uruchomić aplikację Java, klikając przycisk Uruchom na pasku narzędzi. Przy pierwszym uruchomieniu, jak pokazano na Rysunku 7, musisz wybrać klasę główną do wykonania. Wybierz klasę HttpApiTester i kliknij „Wybierz klasę główną”.

wklej kod ze strony, a następnie wybierz klasę główną
Rysunek 7 - Wklej kod ze strony, a następnie wybierz klasę główną

Krok 8 - Zobacz wynik działania aplikacji

Jeśli do tego momentu wszystko zrobiłeś poprawnie, aplikacja się uruchomi, a wynik będzie widoczny w oknie konsoli, jak pokazano na Rysunku 8. To okno wyświetla żądanie HTTP, które zostało zainicjowane i wysłane do bramki SMS, a także odpowiedź z bramki SMS, która wskazuje, czy dostarczenie wiadomości SMS zakończyło się sukcesem.

program uruchamia się i wyświetla wynik
Rysunek 8 - Program uruchamia się i wyświetla wynik

Krok 9 - Sprawdź wynik wysyłki w dzienniku Ozeki

W Ozeki 10 SMS Gateway możesz śledzić wiadomości wysłane przez Twoją aplikację, ponieważ usługa HTTP API rejestruje każde zdarzenie, które wystąpiło podczas jej działania. Po otwarciu SMS Gateway i wybraniu szczegółów usługi HTTP API, będziesz mógł zobaczyć zdarzenia. Jak pokazuje Rysunek 9, usługa zarejestrowała zdarzenie, gdy przykładowa aplikacja Java wysłała żądanie HTTP do usługi.

sprawdź dzienniki usługi http api
Rysunek 9 - Sprawdź dzienniki usługi HTTP API

Sposób, w jaki SMS Gateway przetwarza wiadomości, można również prześledzić za pomocą zdarzeń. W tym celu otwórz połączenie użytkownika HTTP API, które wcześniej musiałeś skonfigurować. Rysunek 10 pokazuje, jak połączenie obsługuje żądanie HTTP i wysyła wiadomość do odbiorcy, którego określiłeś w swojej aplikacji Java.

sprawdź dzienniki użytkownika http api
Rysunek 10 - Sprawdź dzienniki użytkownika HTTP API

Podsumowanie

Z tego artykułu nauczyłeś się, jak wysyłać SMS-y z Javy. Oznacza to, że możesz wdrożyć usługi SMS w swoich aplikacjach Java. Podstawą tego rozwiązania jest Ozeki SMS Gateway. Oznacza to, że nie będziesz miał problemów z wydajnością ani opóźnieniami w wysyłaniu SMS-ów. W ten sposób Twoje rozwiązania Java mogą zaspokoić więcej potrzeb klientów i będą bardziej wszechstronne. Ponadto umożliwią szybszy i łatwiejszy przepływ informacji.

Aby lepiej zrozumieć cały system, zapoznaj się z stronami tutorialowymi Ozeki dotyczącymi odbierania SMS-ów w Javie, lub spróbuj wdrożyć usługi SMS w innych projektach. Na przykład, użyj HTTP SMS API z PHP.

Kolejnym krokiem jest pobranie Ozeki SMS Gateway i rozpoczęcie rozwoju już teraz!

More information