Cum să trimiți SMS din 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 destinatar și va returna un răspuns HTTP 200 OK la cererea ta.
Exemplul de cod Java sms de mai jos demonstrează cum poți trimite 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.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 msg = new Message(); msg.ToAddress = "+36201111111"; msg.Text = "Hello world"; var api = new MessageApi(configuration); var result = api.Send(msg); System.out.println(result); } }
Cum să folosești exemplul Java sms:
Poți folosi clasa Message pentru a crea SMS-ul și poți folosi clasa MessageApi pentru a trimite SMS-ul către gateway-ul SMS. Gateway-ul SMS va transmite mesajul tău către rețeaua mobilă fie printr-o conexiune wireless fie prin Internet.
Descarcă SendSms.java
Codul sursă explicat în acest articol poate fi descărcat, folosit și modificat gratuit.
Descarcă: SendSms.java.zip (89.3Kb)
Fișierul SendSms.java.zip conține biblioteca Ozeki, care îți oferă toate instrumentele necesare pentru a trimite și primi 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ă trimiți un SMS. Acest cod exemplu este listat mai jos.
Pentru a trimite sms din Java:
- Instalează Ozeki SMS Gateway
- Conectează Ozeki SMS Gateway la rețeaua mobilă
- Trimite un sms de test din Ozeki GUI
- Creează un utilizator HTTP sms api
- Apache NetBeans
- Creează un proiect numit SendSms
- Pune codul într-un fișier Main.java nou creat sau folosește fișierul Main.java din .zip
- Creează SMS-ul prin crearea unui nou obiect Message
- Creează un api pentru a trimite mesajul tău
- Folosește metoda Send pentru a trimite mesajul tău
- Citește mesajul de răspuns pe consolă
- Verifică logurile din gateway-ul SMS
Pentru a putea trimite SMS din Java, mai întâi trebuie să instalezi Ozeki SMS Gateway. Gateway-ul SMS poate fi instalat pe același calculator unde dezvolți codul tău Java în Apache NetBeans. După instalare, următorul pas este să conectezi Ozeki SMS Gateway la rețeaua mobilă. Poți trimite un sms de 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 tău Java.
URL API HTTP pentru a trimite SMS din JavaPentru a trimite SMS din Java, aplicația ta Java 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 calculator unde rulează aplicația Java sms, aceasta poate fi 127.0.0.1. Dacă este instalat pe un alt calculator, ar trebui să fie adresa IP a acelui calculator.
http://127.0.0.1:9509/api?action=rest
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 trimite SMS din JavaPentru a trimite mesajele SMS, trebuie să incluzi următoarele linii ca antete în cererea HTTP. Reține că includem un antet Content-Type și un antet Authorization.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Cerere HTTP pentru trimiterea SMS din Java
Pentru a trimite 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.
POST /api?action=sendmsg HTTP/1.1 HTTP2-Settings: AAEAAEAAAAIAAAABAAMAAABkAAQBAAAAAAUAAEAA Connection: Upgrade, HTTP2-Settings Upgrade: h2c Content-Length: 319 Content-Type: application/json Accept: application/json Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9509 User-Agent: Java-http-client/16.0.1 { "messages": [ { "message_id":"f5035474-77d7-4be0-9ace-14bf3105940e", "submit_report_requested":true, "view_report_requested":true, "valid_until":"2021-06-18 13:37:47", "time_to_send":"2021-06-11 13:37:47", "to_address":"+36201111111", "text":"Hello world", "create_date":"2021-06-11 13:37:47", "delivery_report_requested":true } ] }
Răspuns HTTP primit de exemplul Java pentru 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ă cererea de trimitere SMS a fost reușită sau nu. De asemenea, va returna o structură codificată în JSON pentru a vă 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": "Messages queued for delivery.", "data": { "total_count": 1, "success_count": 1, "failed_count": 0, "messages": [ { "message_id": "f5035474-77d7-4be0-9ace-14bf3105940e", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Hello world", "create_date": "2021-06-11 13:37:47", "valid_until": "2021-06-18 13:37:47", "time_to_send": "2021-06-11 13:37:47", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" } ] } }
Cum să trimiți SMS din Java folosind API-ul Java pentru SMS (Tutorial video)
Acest videoclip vă arată cum să creați un nou proiect în Apache NetBeans, cum să-l denumiți SendSms. Odată ce soluția este creată, s-ar putea să observați că există un folder numit <default package> în proiectul dvs. în interiorul folderului 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 trimite un SMS folosind Java.
Exemplu Java pentru SMS: Main.java
Cum să verifici dacă SMS-ul a fost acceptat de utilizatorul HTTP
După ce SMS-ul a fost trimis, este o idee bună să verificați gateway-ul dvs. SMS, pentru a vedea ce a primit. Puteț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.
Cum să verifici dacă SMS-ul a fost trimis către rețeaua mobilă
Pasul final în verificarea procedurii este să aruncați o privire asupra jurnalelor conexiunii la rețeaua mobilă. S-ar putea să fie nevoie să activați jurnalizarea în configurația conexiunii înainte de a trimite mesajul pentru a vedea jurnalele. Dacă jurnalizarea este activată, veți vedea numărul de telefon și textul mesajului pe care l-ați trimis.
Pentru a activa jurnalizarea în http_user, trebuie să urmați aceleași instrucțiuni.
Concluzie
Acest articol a explicat elementele de bază ale trimiterii SMS în Java cu ajutorul Ozeki SMS Gateway. Dacă pașii de mai sus au fost urmați cu atenție, transferul de mesaje în Java nu ar trebui să cauzeze nicio preocupare. Ozeki SMS Gateway oferă performanțe ridicate, ceea ce înseamnă că poate trimite până la 1000 de SMS pe secundă, așa că cu siguranță vă ajută compania să mențină un standard ridicat.
Asigurați-vă că nu terminați lectura aici, vizitați pagina de tutoriale Ozeki și aflați despre lucruri precum trimiterea multiplă de SMS și ștergerea SMS-urilor în Java.
Acum singurul lucru care rămâne de făcut este să descărcați Ozeki SMS Gateway și să începeți să lucrați!
More information