2011-02-18 2 views
2

REST 서비스를 구현하려면 리액터 또는 프록터 모델을 기반으로하는 비동기 C++ HTTP 프레임 워크가 필요합니다. 부스트 ASIO 소켓은 좋은 비동기 TCP/UDP 프레임 워크라고 생각하지만 HTTP 지원이 부족합니다. 아무도 추천 할 수 없나요?비동기 C++ HTTP 프레임 워크를 사용할 수 있습니까?

+0

당신이 관심을 가질만한이 [이 질문에] (http://stackoverflow.com/questions/746309/which-is-the-best-c-web-framework) –

답변

1

또한, 나는 당신이 libcurl에의 C++ 래퍼를 cURLpp 제안 할 수 http://curlpp.org/

0

ffead-cpp은 편안하고 및 SOAP 기반의 웹 서비스 지원, 내장 웹 서버, 아파치 모듈, ORM 및 다른 많은 훌륭한 기능을 제공합니다. 홈 페이지를 확인하십시오 ..

2

NEW! 오래된 질문에 답하십시오. 이 라이브러리는 HTTP와 웹 소켓 지원을 제공, 그 인터페이스는 이미하는 Asio를 알고있는 경우에 학습 곡선을 제거하기 위해 설계되었습니다 https://github.com/vinniefalco/Beast

다음 라이브러리를 사용하여 완전한 예제 프로그램입니다 :

#include <beast/http.hpp> 
#include <boost/asio.hpp> 
#include <iostream> 
#include <string> 

int main() 
{ 
    // Normal boost::asio setup 
    std::string const host = "boost.org"; 
    boost::asio::io_service ios; 
    boost::asio::ip::tcp::resolver r(ios); 
    boost::asio::ip::tcp::socket sock(ios); 
    boost::asio::connect(sock, 
     r.resolve(boost::asio::ip::tcp::resolver::query{host, "http"})); 

    using namespace beast::http; 

    // Send HTTP request using beast 
    request<empty_body> req({method_t::http_get, "/", 11}); 
    req.headers.replace("Host", host + ":" + std::to_string(sock.remote_endpoint().port())); 
    req.headers.replace("User-Agent", "Beast"); 
    write(sock, req); 

    // Receive and print HTTP response using beast 
    beast::streambuf sb; 
    response<streambuf_body> resp; 
    read(sock, sb, resp); 
    std::cout << resp; 
} 
관련 문제