Cum să trimiți mai multe SMS-uri din C#
Cea mai simplă metodă de a trimite SMS-uri din C# 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 numărul de telefon al destinatarului și va returna un răspuns HTTP 200 OK la cererea ta.
Exemplul de cod C# pentru SMS de mai jos demonstrează cum poți trimite SMS folosind API-ul http rest sms al Ozeki SMS Gateway cu ajutorul bibliotecii C# Ozeki.Libs.Rest. Această bibliotecă este oferită gratuit și poți să o folosești și să o modifici în oricare dintre proiectele tale.
SendSMS.csusing Ozeki.Libs.Rest; using System; namespace SendMultipleSms { class Program { static void Main(string[] args) { var configuration = new Configuration() { Username = "http_user", Password = "qwe123", ApiURL = "http://127.0.0.1:9509/api" }; var msg1 = new Message() { ToAddress = "+36201111111", Text = "Bună, Lume 1" }; var msg2 = new Message() { ToAddress = "+362222222", Text = "Bună, Lume 2" }; var msg3 = new Message() { ToAddress = "+363333333", Text = "Bună, Lume 3" }; var api = new MessageApi(configuration); var result = api.Send(new Message[]{ msg1, msg2, msg3 }); Console.WriteLine(result); Console.ReadKey(); } } }
Cum să folosești exemplul C# pentru SMS:
Acest exemplu C# pentru SMS poate fi folosit în orice aplicație .NET sau .NET core. Pentru a-l folosi, trebuie să adaugi DLL-ul Ozeki.Libs.Rest ca referință în proiectul tău. După ce referința este adăugată, trebuie să incluzi directiva using Ozeki.Libs.Rest; în secțiunea de antet a codului sursă C#. Acest lucru îți va permite să folosești clasele oferite de biblioteca Ozeki.Libs.Rest. Poți folosi clasa Message pentru a crea SMS-ul. 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 fără fir, fie prin Internet.
Descarcă SendSMS.cs
Codul sursă explicat în acest articol poate fi descărcat, folosit și modificat gratuit.
Descarcă: SendMultipleSms.cs.zip (34.5Kb)
Fișierul SendMultipleSms.cs conține biblioteca Ozeki.Libs.Rest, care îți oferă toate instrumentele necesare pentru a trimite și primi mesaje SMS. Vei găsi de asemenea proiectul SendMultipleSms în arhivă, 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 mai multe SMS-uri din C#:
- Configurează Visual Studio Community
- Descarcă fișierul Send-multiple-SMS.cs.zip
- Extrage fișierul .zip din folderul Descărcări
- Deschide fișierul SendMultipleSms.sln în Visual Studio
- Pornește Ozeki SMS Gateway
- Creează un utilizator HTTP API în Ozeki
- Rulează codul C# Program.cs în Visual Studio pentru a trimite mesaje SMS de test
- Verifică căsuța Trimise în Ozeki SMS Gateway
Pentru a putea trimite SMS din C#, mai întâi trebuie să instalezi Ozeki SMS Gateway. Gateway-ul SMS poate fi instalat pe același calculator pe care îți dezvolți codul C# în Visual Studio. După instalare, următorul pas este să conectezi Ozeki SMS Gateway la rețeaua mobilă. Poți trimite un SMS de test din interfața grafică Ozeki 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 C#.
URL API HTTP pentru a trimite SMS din C#Pentru a trimite SMS din C#, codul tău C# 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 pe care rulează aplicația C# pentru 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
Autentificare HTTP pentru a trimite SMS din C#
Pentru a autentifica clientul SMS în C#, trebuie să trimiteți numele de utilizator și parola într-un șir codat base64 către server într-o cerere HTTP. Formatul utilizat este: base64(nume_utilizator+":"+parolă). În C# puteți utiliza următorul cod pentru a face această codare:
var encoding = Encoding.GetEncoding("iso-8859-1"); var usernamePassword = username + ":" + password; var usernamePasswordEncoded = Convert.ToBase64String(encoding.GetBytes(usernamePassword));
De exemplu, dacă codificați numele de utilizator 'http_user' și parola 'qwe123', veți obține următorul șir codat base64: aHR0cF91c2VyOnF3ZTEyMw==. Pentru a trimite
Antetul cererii HTTP pentru a trimite SMS din C#Pentru a trimite mesajele SMS, trebuie să includeți următoarele linii ca antete în cererea HTTP. Rețineți că includem un tip de conținut și un antet de autorizare.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Pentru a trimite mesajele SMS, aplicația dvs. C# va trimite o cerere HTTP similară cu cea de mai jos. Rețineți că această cerere conține o parte de antet HTTP și o parte de corp HTTP. Corpul HTTP este un șir de date codat JSON. Acesta conține numărul destinatarului și textul mesajului.
POST /api?action=sendmsg HTTP/1.1 Connection: Keep-Alive Content-Length: 979 Content-Type: application/json Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9511 { "messages": [ { "message_id": "49aa6f3a-5d2a-4d53-bd63-9eb9da8bb23e", "to_address": "+36201111111", "text": "Hello, World 1", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] }, { "message_id": "62098595-5ff8-4ca8-8b06-54f0fb31ee12", "to_address": "+362222222", "text": "Hello, World 2", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] }, { "message_id": "f5b576ff-52b8-4de0-9677-4731769198f9", "to_address": "+363333333", "text": "Hello, World 3", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] } ] }
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 a SMS-ului a fost reușită sau nu. De asemenea, va returna o structură codată JSON pentru a vă oferi detalii utile despre trimiterea mesajului.
HTTP/1.1 200 OK User-Agent: OZEKI 10.3.116 (www.myozeki.com) Content-Type: application/json; charset=utf8 Last-Modified: Fri, 11 Jun 2021 13:06:37 GMT Server: 10/10.3.116 Transfer-Encoding: chunked { "http_code": 200, "response_code": "SUCCESS", "response_msg": "Messages queued for delivery.", "data": { "total_count": 3, "success_count": 3, "failed_count": 0, "messages": [ { "message_id": "49aa6f3a-5d2a-4d53-bd63-9eb9da8bb23e", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Hello, World 1", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" }, { "message_id": "62098595-5ff8-4ca8-8b06-54f0fb31ee12", "from_station": "%", "to_address": "+362222222", "to_station": "%", "text": "Hello, World 2", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" }, { "message_id": "f5b576ff-52b8-4de0-9677-4731769198f9", "from_station": "%", "to_address": "+363333333", "to_station": "%", "text": "Hello, World 3", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" } ] } }
Cum să descărcați proiectul SendMultipleSMS.sln (Tutorial video)
În următorul videoclip, veți învăța cum puteți utiliza proiectul C# SendMultipleSMS.sln. Videoclipul va începe cu pagina de descărcare și vă va conduce până la panoul deschis al editorului de cod. Veți învăța cum să descărcați și să deschideți fișierul de cod. Videoclipul durează doar 54 de secunde, dar conține toate informațiile necesare pentru a utiliza cu succes fișierul de cod exemplu.
Codul exemplu de mai jos face parte din Soluția Visual Studio SendMultipleSms.sln. O soluție Visual Studio poate conține mai multe proiecte și mai multe fișiere. În această soluție există un singur proiect: SendMultipleSms.csproj, și un singur fișier: Program.cs.
În următorul clip, veți vedea cum puteți lansa codul C# SendMultipleSMS.cs. Videoclipul va începe cu codul deschis și vă va conduce până la fila de evenimente cu jurnalul mesajului trimis. Veți vedea cum să lansați codul și ce s-a întâmplat dacă codul a fost executat. Videoclipul este puțin mai scurt de 1 minut, dar conține toate informațiile necesare pentru a rula proiectul.
Rularea exemplului de SMS în C# pe Windows
Când utilizați Windows pentru a rula acest exemplu de SMS scris în C#, veți observa că obțineți o performanță ușor mai bună decât atunci când îl rulați pe Linux. Pentru a înțelege de ce se întâmplă acest lucru, trebuie să țineți cont de faptul că C# utilizează cadrul .NET pentru executarea codului. Acest lucru se datorează faptului că implementarea .NET pe Windows este optimizată pentru performanță, în timp ce mono, implementarea .NET pe Linux, mai are de recuperat în acest domeniu.
ConcluzieAcest articol a prezentat pașii pentru trimiterea mai multor SMS-uri într-o singură cerere din C#. Cu aceste cunoștințe și instrumentele furnizate, ar trebui să puteți contacta mai mulți clienți cu un singur cod. Ozeki SMS Gateway joacă un rol important în acest proces, deoarece acest program organizează livrarea mesajelor. Ozeki SMS Gateway funcționează cu calitate și performanță ridicate, permițându-vă să trimiteți până la 1000 de SMS-uri pe secundă.
Continuați-vă învățarea pe paginile de tutoriale ale Ozeki, unde puteți citi despre subiecte precum programarea SMS-urilor și ștergerea în C#.
Acum, singurul lucru pe care trebuie să-l faceți este să descărcați Ozeki SMS Gateway și să începeți să lucrați!
More information
- How to send SMS from C#
- How to send multiple SMS from C#
- How to send scheduled SMS from C#
- How to receive SMS in C#
- How to delete SMS using C#
- Github: C# SMS API
- SMS nuget library for C#