C#/.NET 통합
내장된 HttpClient 클래스를 사용하면 SMSBAT API를 .NET 애플리케이션에 통합하는 것이 간단합니다.
HttpClient 사용(.NET Core/.NET 5+)
다음은 직렬화를 위해 HttpClient와 System.Text.Json을 사용하여 비동기적으로 메시지를 보내는 예입니다.
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}");
}
}
}
}
RestSharp 사용
프로젝트에서 이미 RestSharp를 활용하고 있는 경우 이를 사용하여 요청 구조를 단순화할 수 있습니다.
NuGet 패키지를 설치합니다.
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}");
}
}
}
}