C#에서 서버 간 데이터를 주고받기 위해 주로 HTTP 요청을 사용하며, 이 과정에서 JSON 형식의 데이터를 주고받는 것은 매우 일반적이다.
1. JSON 형식의 데이터 준비
- A 서버에서 전송할 데이터를 JSON 형식으로 직렬화한다. C#에서는 Newtonsoft.Json 라이브러리나 .NET의 내장 기능을 사용하여 객체를 JSON으로 직렬화할 수 있다.
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
public class MyData
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Program
{
public static async Task Main(string[] args)
{
var data = new MyData
{
Id = 1,
Name = "Example Data"
};
string jsonData = JsonConvert.SerializeObject(data);
await SendDataToServer(jsonData);
}
public static async Task SendDataToServer(string jsonData)
{
using (var client = new HttpClient())
{
var content = new StringContent(jsonData, Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://example.com/api/receive", content);
if (response.IsSuccessStatusCode)
{
Console.WriteLine("Data sent successfully.");
}
else
{
Console.WriteLine("Failed to send data.");
}
}
}
}
2. HTTP 요청을 통해 JSON 데이터 전송
- C#의 HttpClient 클래스를 사용하여 B 서버로 HTTP POST 요청을 보낸다. 이 과정에서 JSON 데이터를 HTTP 요청의 본문에 포함시킨다.
public static async Task SendDataToServer(string jsonData)
{
using (var client = new HttpClient())
{
var content = new StringContent(jsonData, Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://b-server.com/api/endpoint", content);
if (response.IsSuccessStatusCode)
{
Console.WriteLine("Data sent successfully.");
}
else
{
Console.WriteLine($"Failed to send data. Status code: {response.StatusCode}");
}
}
}
3. B 서버에서 JSON 데이터 수신
- B 서버는 HTTP POST 요청을 받아 JSON 데이터를 처리할 수 있도록 API 엔드포인트를 설정해야 한다. 예를 들어, B 서버에서 ASP.NET Core를 사용하여 데이터를 받을 수 있다.
[ApiController]
[Route("api/[controller]")]
public class ReceiveController : ControllerBase
{
[HttpPost("endpoint")]
public IActionResult ReceiveData([FromBody] MyData data)
{
if (data == null)
{
return BadRequest();
}
// 데이터를 처리하는 로직을 작성한다.
Console.WriteLine($"Received data: Id = {data.Id}, Name = {data.Name}");
return Ok();
}
}
public class MyData
{
public int Id { get; set; }
public string Name { get; set; }
}
반응형
'Programming > C#' 카테고리의 다른 글
DLL 추가 / 열기 및 수정 / 추출 (0) | 2024.09.01 |
---|---|
C# - npgsql & IIS 포트 (0) | 2024.08.30 |
C# - GPDB 커넥션 에러 (0) | 2024.08.26 |
C# 파일 구성 (0) | 2024.08.19 |
DLL 개념 (0) | 2024.08.19 |