Към съдържанието

C# / .NET Integration

Integrating SMSBAT API into your .NET application is simple using the built-in HttpClient class.

Using HttpClient (.NET Core / .NET 5+)

Here is an example of sending a message asynchronously using HttpClient and System.Text.Json for serialization.

using System;
using System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;

namespace SmsbatIntegration
{
    class Program
    {
        private static readonly HttpClient client = new HttpClient();

        static async Task Main(string[] args)
        {
            string url = "https://api.smsbat.com/bat/messagelist";
            string apiKey = "YOUR_API_KEY_HERE";

            // Create the payload using anonymous objects
            var payload = new
            {
                messages = new[]
                {
                    new
                    {
                        from = "ALPHANAME",
                        to = "380501234567",
                        text = "Hello from C# and .NET!",
                        type = "sms"
                    }
                }
            };

            // Serialize the payload to JSON
            string jsonPayload = JsonSerializer.Serialize(payload);
            var content = new StringContent(jsonPayload, Encoding.UTF8, "application/json");

            // Set the Authorization Header
            client.DefaultRequestHeaders.Add("X-Authorization-Key", apiKey);

            try
            {
                // Send the POST request
                HttpResponseMessage response = await client.PostAsync(url, content);

                // Read the response content
                string responseBody = await response.Content.ReadAsStringAsync();

                Console.WriteLine($"Status Code: {(int)response.StatusCode}");
                Console.WriteLine($"Response: {responseBody}");
            }
            catch (HttpRequestException e)
            {
                Console.WriteLine($"Request exception: {e.Message}");
            }
        }
    }
}

Using RestSharp

If your project already utilizes RestSharp, you can use it to simplify the request structure.

Install the NuGet package:

dotnet add package RestSharp

using System;
using System.Threading.Tasks;
using RestSharp;

namespace SmsbatIntegrationRestSharp
{
    class Program
    {
        static async Task Main(string[] args)
        {
            var options = new RestClientOptions("https://api.smsbat.com");
            var client = new RestClient(options);

            var request = new RestRequest("/bat/messagelist", Method.Post);
            request.AddHeader("X-Authorization-Key", "YOUR_API_KEY_HERE");

            var payload = new
            {
                messages = new[]
                {
                    new
                    {
                        from = "ALPHANAME",
                        to = "380501234567",
                        text = "Hello from RestSharp!",
                        type = "sms"
                    }
                }
            };

            // Automatically serializes object to JSON and sets Content-Type
            request.AddJsonBody(payload);

            try
            {
                var response = await client.ExecuteAsync(request);

                Console.WriteLine($"Status Code: {(int)response.StatusCode}");
                Console.WriteLine($"Response: {response.Content}");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error: {ex.Message}");
            }
        }
    }
}