1. 윈폼에서 API 호출하기
윈폼에서 API를 호출하려면 .Net의 Http를 사용한다. 또한 데이터를 Json으로 파싱하기 위해 Newtonsoft.Json 라이브러리 설치가 필요하다.
NuGet 패키지 관리를 통해 라이브러리를 검색, 설치를 간편하게 할 수 있다.
Newtonsoft.Json 을 검색, 설치 한다.
2. 호출
public class Api
{
private readonly HttpClient _httpClient;
public Api()
{
_httpClient = new HttpClient
{
BaseAddress = new Uri("http://localhost:9800"),
DefaultRequestHeaders =
{
Accept = { new MediaTypeWithQualityHeaderValue("application/json") }
}
};
}
public async Task<string> PostAsync(string url, string postData)
{
try
{
HttpResponseMessage response = await _httpClient.PostAsync(url, new StringContent(postData, Encoding.UTF8, "application/json"));
response.EnsureSuccessStatusCode(); // 예외 throw
string data = await response.Content.ReadAsStringAsync();
return data;
}
catch (HttpRequestException ex)
{
// HTTP 요청 예외 처리
throw new Exception("API 요청 실패: " + ex.Message);
}
catch (Exception ex)
{
// 기타 예외 처리
throw new Exception("에러: " + ex.Message);
}
}
}
HttpClient 클래스를 사용하여 API를 호출하는 코드임.
생성자를 통해 HttpClient의 인스턴스를 생성함.
BaseAddress는 api의 uri를 설정함. 공통으로 사용할 클래스이기 때문에 path는 지정하지 않음.
async를 사용하여 비동기 작업으로 진행시킨다.
여기서 Task는 반환형인데, Task = void, Task<type> = string, int, Object... 이런 느낌 (。_。)
결과를 받기위해 HttpResponseMessage 를 사용한다. PostAsync 메서드를 사용하여 post 요청을 보내는데, 매개변수로 url과 StringContent로 보낼 데이터 및 포맷, 형식을 지정하여 요청함
여기서 await 는 해당 요청이 끝날때까지 대기하게 만들어준다.
api server측에서 보낸 http 코드를 가지고 성공여부를 판단 후 성공 - 문자열 반환, 실패 - 예외처리 - Exception 발생시킴.
ReadAsStringAsync()를 통해 반환 데이터를 저장 후 리턴함.
branch = JsonConvert.DeserializeObject<Branch>(data);
받은 데이터를 JsonConvert를 통해 파싱, 저장한다.
'C# > 윈폼' 카테고리의 다른 글
C# 윈폼 차트 컨트롤 (0) | 2023.07.17 |
---|---|
C# App.config 윈폼 구성 파일 (0) | 2023.07.14 |
C# 윈폼 Drag & Drop (0) | 2023.07.14 |
C# 윈폼 System Tray (0) | 2023.07.14 |
C# 윈폼 윈도우 멀티쓰레딩 (0) | 2023.07.14 |