반응형
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의 기능을 사용할 수 있음
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의 충분한 대체제라고 생각된다.
반응형
'개발 > C++' 카테고리의 다른 글
[Design Pattern] Strategy Pattern(전략 패턴) 정리 (2) | 2023.11.06 |
---|---|
3. c# string을 c++ DLL로 전달하는 방법 (0) | 2023.02.01 |
2. C++ DLL을 C#에서 이용하기 (0) | 2023.01.31 |
1. VS 2019에서 C++ 프로젝트를 DLL로 빌드하기 (0) | 2023.01.31 |
C++ 람다 함수 정리 (1) | 2023.01.25 |