개발/C++

c++에서 http호출을 쉽게해보자! cpp-httplib 연동하기

njsung 2023. 6. 16. 16:53
반응형
728x90

Introduction

c++ 환경에서는 lib-curl과 같은 무거운 라이브러리를 붙이기가 꽤나 까다롭다. 가볍게 http호출을 위한 헤더온리 라이브러리를 찾는다면 cpp-httplib가 좋은 선택이될 수 있다. cpp-httplib는 단일 헤더 파일로 제공되어 프로젝트에 통합하기 쉽다. 하지만 주의해야 할 점이 있는데, cpp-httplib는 C++11 이상을 지원하는 컴파일러가 필요하다는 것이다.

 

Install

cpp-httplib는 단일 헤더 라이브러리로, Github에서 직접 다운로드하고 프로젝트에 포함시키는 것이 일반적으로, 이렇게 하면 별도의 라이브러리 설치 과정이 필요 없다.

1. 다음 링크로 이동: https://github.com/yhirose/cpp-httplib
2. 'Code' 버튼을 클릭한 후 'Download ZIP'을 선택
3. 압축을 해제한 후에 'httplib.h' 파일을 프로젝트의 적절한 위치에 복사
4. 프로젝트에서 이 헤더 파일을 include하면 cpp-httplib의 기능을 사용할 수 있음

Project Setting

Example

아주 기본적인 사용 예시를 하나 첨부한다. 호출할 api와 파라미터 형식에 따라 함수를 호출하면 결과를 얻을 수 있다.

#include "httplib.h"

int main(void) {
    httplib::Client cli("http://example.com");

    auto res = cli.Get("/path");

    if (res) {
        if (res->status == 200) {
            std::cout << res->body << std::endl;
        }
    } else {
        auto err = res.error();
        std::cout << "Error occurred: " << err << std::endl;
    }

    return 0;
}

Get, Post, Put 메소드를 지원하며, Post의 경우 아래와 같은 형태로도 호출할 수 있다.

httplib::Client cli("http://api-endpoint.addr");
httplib::Params params;

params.emplace("id", "123456");
params.emplace("input_time", "2023-06-16-00-10-57");

auto res = cli.Post("/insert", params);

Summary

c++에서 가볍게 http 연동 혹은 api 호출이 필요하다면 cpp-httplib을 사용해보면 좋을 것 같다. libcurl의 충분한 대체제라고 생각된다.

반응형