소개

HttpLib(C# .NET Framework) 간략 소개

1. 라이브러리 개요

HttpLib(작성자 James Thorne)는 Apache 2.0 라이선스 기반 .NET HTTP 요청 보조 라이브러리입니다. 비동기 네트워크 요청을 간소화하고 파일 업로드, 웹 페이지 다운로드를 지원하며 메서드 체인 방식을 사용합니다.

참고: C++ 동명 라이브러리인 httplib, com.daniyarkaliyev.httplib와 혼동하지 마세요. 반드시 HttpLib 패키지를 설치해야 합니다.

패키지를 설치하지 않으면 코드에서 Http 타입을 찾을 수 없습니다.

2. 설치 절차

  1. 솔루션 탐색기에서 프로젝트 우클릭 → NuGet 패키지 관리
  2. [찾아보기] 탭으로 전환 후 HttpLib 검색
  3. 작성자가 James Thorne (@j6mes)인 패키지를 선택하고 설치(버전 v2.0.16.94)
  4. 출력 창에 설치 완료 메시지가 표시될 때까지 대기

3. HttpLib 참조 추가

1. 네임스페이스 참조 누락

소스 코드 최상단에 반드시 추가하세요:

using HttpLib;

이 줄이 없으면 Http.Get()에 빨간 물결 밑줄 오류가 나타납니다.

일반적으로 NuGet으로 설치하면 자동으로 참조가 추가되므로 수동으로 적어줄 필요가 없습니다.

2. 코드 예시
using System;
using HttpLib; // 필수 네임스페이스

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Http.Get("https://archive.codeplex.com/?p=httplib")
                .OnSuccess(result =>
                {
                    Console.Write(result);
                })
                .Go();

            Console.ReadKey();
        }
    }
}Code language: JavaScript (javascript)

일부 웹사이트는 스크래핑 요청을 차단해 오류가 발생할 수 있으며, 대상 사이트 자체에 접속이 불가능할 수도 있습니다.

An unhandled exception of type “System.Net.WebException” occurred in JumpKick.HttpLib.dll

위 예외가 발생하면 브라우저로 해당 주소에 접속 가능한지 확인하고, 접속이 안 되면 다른 도메인으로 교체하세요.

4. 구문 설명

Http.Get("url")               // GET 요청 생성
.OnSuccess(result => {})      // 요청 성공 콜백, result는 웹 응답 텍스트
.Go();                        // 비동기 요청 실행Code language: JavaScript (javascript)
  • .Go(): 비동기 네트워크 호출을 시작하며 메인 스레드를 차단하지 않습니다
  • 확장 기능: .OnError()로 네트워크 예외를 처리할 수 있습니다
Http.Get("https://example.com")
.OnSuccess(res=>Console.WriteLine(res))
.OnError(ex=>Console.WriteLine("요청 실패:"+ex.Message))
.Go();Code language: JavaScript (javascript)

예제에 적힌 테스트 주소는 이미 사용 불가이므로 실행하면 요청이 실패합니다. https://httpbin.org/html로 바꿔 사용하세요.

6. 전체 예제 코드

using System;
using HttpLib;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            // 정상 동작하는 테스트 주소 사용
            Http.Get("https://httpbin.org/html")
                .OnSuccess(result =>
                {
                    Console.WriteLine("요청 성공:");
                    Console.Write(result);
                })
                .OnError(err =>
                {
                    Console.WriteLine("요청 예외:" + err.Message);
                })
                .Go();

            Console.WriteLine("비동기 요청이 발송되었습니다. 아무 키나 누르면 종료합니다");
            Console.ReadKey();
        }
    }
}Code language: JavaScript (javascript)

using HttpLib;를 추가했음에도 여전히 빨간 밑줄이 표시된다면 NuGet 캐시 삭제 및 패키지 재설치 방법을 알려드릴 수 있습니다.

참고사항

httpbin.org는 Python requests 라이브러리 제작자가 만든 오픈소스 무료 HTTP 테스트 서비스로 HTTP 요청 디버깅 목적으로 쓰입니다.

/html는 해당 서비스에서 제공하는 API 경로 중 하나입니다.

실행 결과

링크에 접속하면 기본 HTML 문서가 반환됩니다:

소개

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다