Programming/C#

C# 에서 서버 간 JSON 데이터 주고받기

박쿠리 2024. 8. 19. 22:00

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