반응형
HttpClient란 무엇인가?
HttpClient은 HTTP 요청을 처리하기 위해서 설계된 .NET 라이브러리 내에 존재하는 클래스이다.
HttpClient의 장점
- 비동기 실행(Asynchronous Operations) : 응답을 기다리는 동안 다른 처리가 가능하다.
- 재사용성(Reusable) : 하나의 인스턴스로 여러 요청에 사용이 가능하다.
- 유연성(Flexibility) : HTTP 메소드와 커스텀 가능한 헤더를 지원한다.
HttpClient.PosyAsync는 특정한 URL에 대해서 POST 방식으로 비동기로 데이터 송신을 가능하게 한다.
기본 예제
HttpClient client = new HttpClient();
HttpContent content = new StringContent(jsonData, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync("https://api.example.com/data", content);
JSON 포멧으로 비동기 POST를 보내는 기본 예제이다.
플레인 텍스트
var client = new HttpClient();
var content = new StringContent("This is some data", Encoding.UTF8, "text/plain");
HttpResponseMessage response = await client.PostAsync("https://postman-echo.com/post", content);
JSON 데이터
var json = "{\"name\":\"John\", \"city\":\"New York\"}";
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://jsonplaceholder.typicode.com/posts", content);
헤더 추가하기
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_TOKEN_HERE");
인증 추가하기
var client = new HttpClient();
var byteArray = Encoding.ASCII.GetBytes("username:password");
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
에러 핸들링 예제
try
{
var response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
}
catch(HttpRequestException e)
{
Console.WriteLine($"Request error: {e.Message}");
}
실전 예제
기본적인 뼈대가 되는 실전 예제를 살펴보자.
public class RestClient
{
private static readonly HttpClient client = new HttpClient();
public async Task<string> PostDataAsync(string uri, string jsonData)
{
var content = new StringContent(jsonData, Encoding.UTF8, "application/json");
var response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();
return await response.Content.ReadAsStringAsync();
}
}
정리하자면
HttpClient.PostAsync는 POST 요청을 보내기 위한 멋진 툴이다. 직관적이고, 유연하고 강력하다. 간단한 데이터부터 복잡한 인증 요청까지 모두 커버 가능하다. C# HttpClient를 잘 다루게 되면 웹을 통한 상호작용을 더 부드럽고 효과적으로 다룰 수 있을 것이다.
참고 사이트
'프로그래밍 > C#' 카테고리의 다른 글
C# 프로그램 진입점 Main함수가 static인 이유 (1) | 2024.11.19 |
---|---|
C# 비동기 프로그래밍 시작하기 (0) | 2024.10.08 |
C# HTTP 프로토콜과 Web 사용 (0) | 2024.10.02 |
IEnumerable vs IQueryable 어떻게 다른지 알아보자 (0) | 2024.09.25 |
C# Trim() 메서드에 대해서 (0) | 2024.09.10 |
댓글