Python이나 JAVA로만 rest api 요청을 해보다가 C/C++로 할일이 생겨서 하다가 있던 일을 써보고자 합니다.
"Rest api 요청 + C계열로 해야한다"라는 생각하자마자 든 생각 - curl로 해보자.
라이브러리를 다운 후
#include<curl/curl.h>
이라는 헤더를 통해 진행이 가능합니다.
여기서 문제는 CMakeLists.txt에 세팅을 해줘야 한다는 문제점이 있었습니다.
CPP 프로젝트를 처음 진행해보다보니, 처음해보는 것들 투성이였습니다.
1. 검색을 통해 진행해보자
- curl 라이브러리를 다운 후, stackoverflow의 여러 내용들을 통해 알아보면서 세팅을 하고 find_package()를 진행하였습니다.
결론 : 이해할 수 없는 에러 발생
2. ChatGPT에게 물어보자
- 이해할 수 없는 에러를 해결하기 위해 GPT를 활용해보자.
결론 : GPT도 모르는거 같다.(가끔 영어로 답함)
3. 다른 방법을 찾아보자
- 분명 curl뿐만 아니라 다른 방식도 존재할거다. 더 찾아보자
여러 방식들을 찾아보다가 httplib라는 헤더를 가지고 활용하는 방식을 찾게 되었다.
https://github.com/yhirose/cpp-httplib
정말 간단한 get 방식
httplib::Client cli("localhost", 1234);
cli.Get("/hello");
또한 간단한 post 방식
res = cli.Post("/post", "text", "text/plain");
그러면 하나의 질문이 생긴다.
Get과 Post를 통해 가져온 json형태의 데이터는 어떻게 나누나요?
그럴땐 cJSON.h 라는 헤더를 통해 진행이 가능하다.
https://github.com/DaveGamble/cJSON
https://github.com/DaveGamble/cJSON?tab=readme-ov-file#example
해당 Example을 보면 쉽게 이해가 가능합니다.
댓글