Cum să primești un SMS în Java

Cea mai simplă metodă de a trimite SMS din Java este utilizarea API-ului HTTP/Rest SMS încorporat al Ozeki SMS Gateway. Când folosești acest API, vei trimite mesaje SMS prin efectuarea unei cereri HTTP Post către gateway-ul SMS. Cererea HTTP Post va conține un mesaj formatat în format json. Gateway-ul SMS va trimite acest SMS către telefonul destinatarului și va returna un răspuns HTTP 200 OK la cererea ta.

cum să primești un sms din java
Figura 1 - Cum să primești un SMS din Java

Cod Java pentru a trimite sms către mobil

Exemplul de cod Java sms de mai jos demonstrează cum poți primi SMS folosind API-ul http rest sms al Ozeki SMS Gateway cu ajutorul bibliotecii Java Ozeki.Libs.Rest. Această bibliotecă este oferită gratuit și poți să o folosești și să o modifici în oricare dintre proiectele tale.

Main.java
import 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);
    }
}
	

Cum să folosești exemplul Java sms:

Poți folosi clasa MessageApi pentru a primi SMS de la gateway-ul SMS. Gateway-ul SMS va înainta mesaje către tine din folderul Inbox.

Descarcă ReceiveSms.java

Codul sursă explicat în acest articol poate fi descărcat, folosit și modificat gratuit.
Descarcă: ReceiveSms.java.zip (89.6Kb)

Ce conține fișierul ReceiveSms.java.zip?

Fișierul ReceiveSms.java.zip conține biblioteca Ozeki, care îți oferă toate instrumentele necesare pentru a trimite, marca, primi și șterge mesaje SMS. Vei găsi de asemenea un fișier Main.java în proiect, care conține codul exemplu pentru a-ți arăta cum să primești mesaje SMS. Acest cod exemplu este listat mai jos.

Figura 2 - Directorul ReceiveSms.java

Cum să primești SMS din Java (Pași rapizi)

Pentru a primi sms din Java:

  1. Instalează Ozeki SMS Gateway
  2. Conectează Ozeki SMS Gateway la rețeaua mobilă
  3. Trimite un sms test din Ozeki GUI
  4. Creează un utilizator HTTP sms api
  5. Apache NetBeans
  6. Creează un proiect numit ReceiveSms
  7. Pune codul într-un fișier Main.java nou creat sau folosește fișierul Main.java din .zip
  8. Creează un api pentru a primi mesajele tale
  9. Folosește metoda DownloadIncoming pentru a primi mesajul tău
  10. Citește mesajul de răspuns pe consolă
  11. Verifică jurnalele în gateway-ul SMS
Instalează Ozeki SMS Gateway și creează un utilizator HTTP API

Pentru a putea trimite, primi și șterge SMS din Java, mai întâi trebuie să instalezi Ozeki SMS Gateway. Gateway-ul SMS poate fi instalat pe același computer unde dezvolți codul Java în Apache NetBeans. După instalare, următorul pas este să conectezi Ozeki SMS Gateway la rețeaua mobilă. Poți trimite un sms test din Ozeki GUI pentru a verifica dacă conexiunea ta la rețeaua mobilă funcționează. Ultimul pas pentru a-ți pregăti mediul este să creezi un utilizator HTTP sms api. Creează un utilizator cu numele de utilizator "http_user" și parola "qwe123" pentru a face exemplul să funcționeze fără modificări.

După ce mediul este configurat, poți rula codul Java.

URL API HTTP pentru a primi SMS din Java

Pentru a primi SMS din Java, Java-ul tău va trebui să efectueze o cerere HTTP către gateway-ul SMS. URL-ul API este afișat mai jos. Reține că adresa IP (127.0.0.1) ar trebui să fie înlocuită cu adresa IP a gateway-ului tău SMS. Dacă Ozeki SMS Gateway este instalat pe același computer unde rulează aplicația Java sms, aceasta poate fi 127.0.0.1. Dacă este instalat pe un computer diferit, ar trebui să fie adresa IP a acelui computer.

http://127.0.0.1:9509/api?action=rest
	
Autentificare HTTP pentru a primi SMS din Java

Pentru a autentifica clientul Java sms, trebuie să trimiți numele de utilizator și parola într-un șir codificat base64 către server într-o cerere HTTP. Formatul folosit este: base64(nume_utilizator+":"+parolă). În Java poți folosi următorul cod pentru a face această codificare:

var usernamePassword = username + ":" + password;
var encodedUsernamePassword = usernamePassword.getBytes();
return "Basic " + Base64.getEncoder().encodeToString(encodedUsernamePassword);
	

De exemplu, dacă codezi numele de utilizator 'http_user' și parola 'qwe123', vei obține următorul șir codificat base64: aHR0cF91c2VyOnF3ZTEyMw==. Pentru a trimite

Antet cerere HTTP pentru a primi SMS din Java

Pentru a șterge mesajul SMS, trebuie să incluzi următoarele linii ca antete în cererea HTTP. Reține că includem un antet de tip conținut și un antet de Autorizare.

Content-Type: application/json
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
	

Cerere HTTP pentru primire SMS din Java

Pentru a șterge SMS-ul, aplicația ta Java va trimite o cerere HTTP similară cu cea de mai jos. Reține că această cerere conține o parte de antet HTTP și o parte de corp HTTP. Corpul HTTP este un șir de date codificat în JSON. Acesta conține numărul destinatarului și textul mesajului.

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
	

Răspuns HTTP primit de exemplul Java SMS

Odată ce gateway-ul SMS primește această cerere, va genera un răspuns HTTP. Răspunsul HTTP va conține un cod de stare, pentru a indica dacă trimiterea SMS-ului a fost reușită sau nu. De asemenea, va returna o structură codificată în JSON pentru a oferi detalii utile despre trimiterea mesajului.

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"
	        }
	      ]
	    }
	  ]
	}
}
	

Cum să trimiți SMS din Java folosind API-ul Java SMS (Tutorial video)

Acest videoclip vă arată cum să creați un nou proiect în Apache NetBeans, cum să-l denumiți ReceiveSMS. Odată ce soluția este creată, s-ar putea să observați că există un folder numit <default package> în proiectul dvs. în folderul Source Packages. Aici veți crea sau lipi fișierul Main.java. Apoi trebuie să lipiți folderul Ozeki în folderul Source Packages și acestea sunt toate pregătirile necesare pentru a primi un SMS folosind Java.

Video 1 - Cum să descarci Ozeki.Libs.Rest și să îți configurezi proiectul (Tutorial video)

Exemplu Java pentru primire SMS: Main.java

Figura 3 - Proiectul ReceiveSms

Cum să verifici dacă SMS-ul a fost acceptat de utilizatorul HTTP

După ce cererea a fost trimisă, este o idee bună să verifici gateway-ul SMS, pentru a vedea ce a primit. Poți verifica jurnalul deschizând detaliile utilizatorului HTTP din consola de management Ozeki SMS Gateway. Următorul videoclip vă arată ce să căutați.

Video 2 - Cum să primești SMS cu codul Java de mai sus (Tutorial video)

Rezumat

Scopul principal al acestui articol a fost să demonstreze primirea SMS-urilor în Java cu ajutorul Ozeki SMS Gateway. Dacă pașii au fost urmați cu atenție, transferul mesajelor din inbox în programul Java al utilizatorului nu mai poate fi o problemă. Dacă doriți să colectați mesajele primite într-un program Java, această soluție este o modalitate perfectă de a face acest lucru. Ozeki SMS Gateway poate fi descărcat de pe site-ul Ozeki și poate fi utilizat gratuit în perioada de încercare, astfel încât să vă puteți asigura că această aplicație este potrivită pentru dvs.

Continuați lectura pe pagina de tutoriale Ozeki, unde puteți găsi ghiduri similare despre subiecte precum ștergerea în Java.

Singurul lucru care rămâne de făcut acum este să descărcați Ozeki SMS Gateway și să începeți lucrul!

More information