이번엔 GET을 통해 서버로부터 간단한 메시지를 얻어오는 TEST를 해보겠습니다.
우선 아래는 Sample Code 입니다.
#include <iostream>
#include <cpprest/http_listener.h>
using namespace std;
using namespace web::http;
using namespace web::http::experimental::listener;
int main(){
http_listener listener(U("http://localhost:9090")); //Server URL, Port 지정.
listener.open().then([&listener](){cout << (U("\n start!!\n"));}).wait(); //Server open
listener.support(methods::GET, [](http_request req){ //support() 함수를 통해 GET방식 지정
req.reply(status_codes::OK, U("hello wordl")); //Lamda방식으로 간단하게 구현.
});
while(true);
listener.close();
return 0;
}
이렇게 작성 후 컴파일을 하면되는데 컴파일 하는 방법은 다음과 같습니다.
저 파일 이름이 simpleServer.cpp 라고 한다면
------------------------------------------------------------------------------------------------
$g++ -std=c++17 simpleServer.cpp -o a.out -lboost_system -lcrypto -lssl -lcpprest -lpthread
------------------------------------------------------------------------------------------------
이렇게 해주면 됩니다......
참조하는 동적라이브러리가 많네요.... 컴파일 시간도 좀 걸릴 겁니다.
나중에 makefile을 만들어서 간편하게 할 생각입니다. 또 stdafx.h(Precompiled Header)를 통해 컴파일 시간도 줄여볼 생각입니다.
컴파일이 되고 실행이 되면 아래와 같이 실행될 것입니다.
그럼 웹 주소창에 "http://localhost:9090"으로 접속하시거나
curl로 GET을 날려 확인해 보면 아래와 같이 나올 것입니다.
"curl -X GET localhost:9090"
이렇게 "hello world" 가 뜨는걸 확인할 수 있을 것입니다.
그럼 이제 외부에서 접속하도록 해보겠습니다.
7번줄에 있는 http_listener listener(U("http://localhost:9090"));
이 부분의 url 부분을 다음과 같이 수정해 주면 됩니다.
"http://0.0.0.0:9090"
그러면 외부에서 서버측 IP주소를 입력하면 접속이 됩니다.
하지만 linux 특성상 iptables에 의해 모든 port가 막혀있습니다.(기본적인것들 제외)
때문에 포트를 열어 준 후 접속을 한다면 다음과 같은 페이지를 확인할 수 있을 것입니다.
이걸로 간단한 Restful http 서버를 만들어 보았습니다.
이 simple 예제를 활용해서 웹 서버를 개발하면 되겠습니다.
아래는 casablanca의 class api문서 입니다.
https://microsoft.github.io/cpprestsdk/namespaces.html
'프로그래밍 > C++ rest(Casablanca)' 카테고리의 다른 글
C++] cpprestful-server 완성본(CpprestSDK) (0) | 2020.11.05 |
---|---|
C++] cpprestSDK(Casablanca) https(ssl) 적용방법. (0) | 2020.07.16 |
C++] cpprestSDK(Casablanca) 1. http_listener 에 대해서.... (0) | 2020.07.02 |
C++] cpprestSDK 에 대한 간략한 설명. (0) | 2020.07.02 |
C++로 Restful서버 만들기(casablanca) 1. 셋팅 및 설치 (1) | 2019.05.28 |
댓글