본문 바로가기
프로그래밍/C#

C# HTTP 프로토콜과 Web 사용

by bantomak 2024. 10. 2.
반응형

WebClient 사용하여 HTTP 사용하기

C#에서 HTTP를 사용하기 위해서는 여러 방법이 있다. 간단하게는 System.Net.WebClient 클래스를 사용할 수 있으며, 좀 더 세밀한 제어를 위해서는 System.Net.HttpWebRequest 클래스를 사용할 수 있다. 아래는 WebClient 클래스를 사용하여 웹사이트의 HTML을 가져오는 예제이다.

 

using System.Net;

string url = "http://www.google.com";

WebClient webClient = new WebClient();
string html = webClient.DownloadString(url);

HttpWebRequest를 사용하여 HTTP 사용하기

C#에서 좀 더 세밀하게 HTTP를 제어할 필요가 있을 때는, System.Net.HttpRequest 클래스를 사용할 수 있다.

예를 들어, HttpWebRequest.Timeout 속성을 사용하여 타임아웃을 지정하거나, HttpWebRequest.KeepAlive 기능을 Enable/Disable 하는 등의 여러 제어를 설정할 수 있다. 아래는 HttpWebRequest 클래스를 사용하여 HTML을 가져오는 예제이다. 단순히 HTML을 가져오는 코드는 훨씬 간단하겠지만, 몇 가지 추가적인 속성 설정들을 추가하였다.

 

using System.Net;

string url = "https://httpbin.org/get"; //테스트 사이트
string responseText = string.Empty;

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
request.Timeout = 30 * 1000; // 30초
request.Headers.Add("Authorization", "BASIC SGVsbG8"); // 헤더 추가 방법

using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
	HttpStatusCode status = response.StatusCode;
    Console.WriteLine(status); // 정상이면 "ok"
    
    Stream responseStream = response.GetResponseStream();
    using (streamReader sr = new streamReader(responseStream))
    {
    	responseText = sr.ReadToEnd();
    }
}

Console.WriteLine(responseText);

HttpClient를 사용해서 HTTP 사용하기

.NET 4.5와 .NET Core에서 HttpClient 클래스를 지원하게 되었는데, HttpClient 클래스는 모든 IO메서드들을 비동기로 처리하는 기능을 가지며, 특히 C# await를 사용하여 자연스럽게 비동기 HTTP 호출을 할 수 있다. 아래는 HttpClient 클래스를 사용하여 웹사이트에서 HTML을 가져오는 예제이다.

 

using System.Net.Http;

static async void GetHtml()
{
	using(var client = new HttpClient())
    {
    	var response = await client.GetStringAsync("https://www.naver.com");
        Console.WriteLine(response);
    }
}
  • WebClient
  • HttpWebRequest
  • HttpClient

등은 웹 클라이언트 기능을 갖는다. 웹서버 기능은 IIS/ASP.NET을 비롯하여 여러 웹 서버 및 웹서버 프로그래밍을 통해 이루어진다.

출처

 

HTTP 프로토콜과 Web 사용 - C# 프로그래밍 배우기 (Learn C# Programming)

HTTP 프로토콜과 Web 사용 HTTP (Hypertext Transfer Protocol) HTTP는 Hypertext Transfer Protocol의 약자로서 Web에서 데이타를 주고 받을 때 사용되는 프로토콜이다. HTTP는 웹 클라이언트와 웹서버 간에 HTML 문서와

www.csharpstudy.com

댓글