Kako prejeti SMS v Javi

Najenostavnejši način za pošiljanje SMS iz Jave je uporaba vgrajenega HTTP/Rest SMS API-ja Ozeki SMS Gateway. Ko uporabljate ta API, boste pošiljali SMS sporočila z izdajo HTTP Post zahteve proti SMS prehodu. HTTP Post zahteva bo vsebovala sporočilo v json formatu. SMS prehod bo poslal ta SMS prejemniku in vrnil HTTP 200 OK odgovor na vašo zahtevo.

kako prejeti sms iz jave
Slika 1 - Kako prejeti SMS iz Jave

Java koda za pošiljanje sms na mobilni telefon

Spodnji Java sms primer kode prikazuje, kako lahko prejmete SMS z uporabo http rest sms api Ozeki SMS Gateway z uporabo knjižnice Java Ozeki.Libs.Rest. Ta knjižnica vam je na voljo brezplačno in jo lahko uporabljate in spreminjate v katerem koli od vaših projektov.

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);
    }
}
	

Kako uporabiti Java sms primer:

Uporabite lahko razred MessageApi za prejemanje SMS iz SMS prehoda. SMS prehod vam bo posredoval sporočila iz mape Inbox.

Prenesite ReceiveSms.java

Izvorna koda, razložena v tem članku, je na voljo za brezplačen prenos, uporabo in spreminjanje.
Prenos: ReceiveSms.java.zip (89,6Kb)

Kaj je v datoteki ReceiveSms.java.zip?

Datoteka ReceiveSms.java.zip vsebuje knjižnico Ozeki, ki vam ponuja vsa orodja, potrebna za pošiljanje, označevanje, prejemanje in brisanje SMS sporočil. V projektu boste našli tudi datoteko Main.java, ki vsebuje primer kode, ki vam pokaže kako prejemati SMS sporočila. Ta primer kode je naveden spodaj.

Slika 2 - ReceiveSms.java mapa

Kako prejeti SMS iz Jave (Hitri koraki)

Za prejemanje sms iz Jave:

  1. Namestite Ozeki SMS Gateway
  2. Povežite Ozeki SMS Gateway z mobilnim omrežjem
  3. Pošljite testni sms iz Ozeki GUI
  4. Ustvarite uporabnika HTTP sms api
  5. Apache NetBeans
  6. Ustvarite projekt z imenom ReceiveSms
  7. Vstavite kodo v novo ustvarjeno datoteko Main.java ali uporabite datoteko Main.java v .zip
  8. Ustvarite api za prejemanje vaših sporočil
  9. Uporabite metodo DownloadIncoming za prejem vašega sporočila
  10. Preberite odzivno sporočilo na konzoli
  11. Preverite dnevnike v SMS prehodu
Namestite Ozeki SMS Gateway in ustvarite uporabnika HTTP API

Da lahko pošiljate, prejemate in brišete SMS iz Jave, morate najprej namestiti Ozeki SMS Gateway. SMS prehod je mogoče namestiti na istem računalniku, kjer razvijate svojo Java kodo v Apache NetBeans. Po namestitvi je naslednji korak povezovanje Ozeki SMS Gateway z mobilnim omrežjem. Lahko pošljete testni sms iz Ozeki GUI, da preverite, ali vaša mobilna omrežna povezava deluje. Končni korak za pripravo vašega okolja je ustvarjanje uporabnika HTTP sms api. Ustvarite uporabnika z uporabniškim imenom "http_user" in geslom "qwe123", da primer deluje brez sprememb.

Ko je okolje pripravljeno, lahko zaženete svojo Java kodo.

HTTP API url za prejemanje sms iz Jave

Za prejemanje SMS iz Jave bo vaša Java morala izdati HTTP zahtevo proti SMS prehodu. API url je prikazan spodaj. Upoštevajte, da je treba IP naslov (127.0.0.1) zamenjati z IP naslovom vašega SMS prehoda. Če je Ozeki SMS Gateway nameščen na istem računalniku, kjer teče Java sms aplikacija, je to lahko 127.0.0.1. Če je nameščen na drugem računalniku, mora biti to IP naslov tega računalnika.

http://127.0.0.1:9509/api?action=rest
	
HTTP avtentikacija za prejemanje sms iz Jave

Za avtentikacijo Java sms odjemalca morate poslati uporabniško ime in geslo v base64 kodiranem nizu na strežnik v HTTP zahtevi. Uporabljen format je: base64(uporabniško_ime+":"+geslo). V Javi lahko za to kodiranje uporabite naslednjo kodo:

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

Na primer, če kodirate uporabniško ime 'http_user' in geslo 'qwe123', boste dobili naslednji base64 kodiran niz: aHR0cF91c2VyOnF3ZTEyMw==. Za pošiljanje

HTTP glava zahteve za prejemanje SMS iz Jave

Za brisanje SMS sporočila morate vključiti naslednje vrstice kot glave v HTTP zahtevo. Upoštevajte, da vključujemo vsebinski tip in glavo Authorization.

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

HTTP zahteva za prejemanje SMS iz Jave

Za brisanje SMS-a bo vaša Java aplikacija poslala HTTP zahtevo, podobno spodnji. Opazite, da ta zahteva vsebuje del HTTP glave in del HTTP telesa. Telo HTTP-ja je niz podatkov, kodiran v JSON. Vsebuje številko prejemnika in besedilo sporočila.

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 odziv, prejet v Java SMS primeru

Ko SMS prehod prejme to zahtevo, bo ustvaril HTTP odziv. HTTP odziv bo vseboval statusno kodo, ki bo pokazala, ali je bila zahteva za oddajo SMS uspešna ali ne. Prav tako bo vrnil strukturo, kodirano v JSON, ki vam bo zagotovila koristne podrobnosti o oddaji sporočila.

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

Kako poslati SMS iz Jave z uporabo Java SMS API-ja (Video vadnica)

Ta video vam pokaže, kako ustvariti nov projekt v Apache NetBeans, kako ga poimenovati ReceiveSMS. Ko je rešitev ustvarjena, boste morda opazili, da je v vašem projektu v mapi Source Packages mapa z imenom <default package>. Tu boste ustvarili ali prilepili datoteko Main.java. Nato morate mapo Ozeki prilepiti v mapo Source Packages in to so vse priprave, ki jih potrebujete za prejemanje SMS-a z Javo.

Video 1 - Kako prenesti Ozeki.Libs.Rest in nastaviti vaš projekt (Video vadnica)

Java primer za prejemanje SMS: Main.java

Slika 3 - Projekt ReceiveSms

Kako preveriti, ali je HTTP uporabnik sprejel SMS

Po oddaji zahteve je dobro preveriti vaš SMS prehod, da vidite, kaj je prejel. Dnevnik lahko preverite tako, da odprete podrobnosti HTTP uporabnika v upravljavski konzoli Ozeki SMS Gateway. Naslednji video vam pokaže, kaj morate iskati.

Video 2 - Kako prejeti SMS z zgornjo Java kodo (Video vadnica)

Povzetek

Glavni cilj tega članka je bil prikazati prejemanje SMS-ov v Javi s pomočjo Ozeki SMS Gateway. Če ste skrbno sledili korakom, prenos sporočil iz nabiralnika v uporabnikov Java program ne bi smel biti več težava. Če želite zbirati dohodna sporočila v Java program, je ta rešitev odličen način za to. Ozeki SMS Gateway lahko prenesete z Ozekijeve spletne strani in ga lahko brezplačno uporabljate v preskusnem obdobju, tako da se lahko prepričate, da je ta aplikacija ustvarjena za vas.

Nadaljujte z branjem na Ozekijevi strani z vadnicami, podobni vodniki so na voljo o temah, kot so brisanje v Javi.

Edina stvar, ki jo morate storiti zdaj, je prenesti Ozeki SMS Gateway in naj se delo začne!

More information