WebUIRequestHandler.cpp 956 字节
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
#include "WebUIRequestHandler.h"
#include "IServer.h"

#include <Poco/Net/HTTPServerRequest.h>
#include <Poco/Net/HTTPServerResponse.h>
#include <Poco/Util/LayeredConfiguration.h>

#include <IO/HTTPCommon.h>
#include <common/getResource.h>


namespace DB
{

WebUIRequestHandler::WebUIRequestHandler(IServer & server_, std::string resource_name_)
    : server(server_), resource_name(std::move(resource_name_))
{
}


21
void WebUIRequestHandler::handleRequest(HTTPServerRequest & request, HTTPServerResponse & response)
22 23 24 25 26
{
    auto keep_alive_timeout = server.config().getUInt("keep_alive_timeout", 10);

    response.setContentType("text/html; charset=UTF-8");

27
    if (request.getVersion() == HTTPServerRequest::HTTP_1_1)
28 29 30 31
        response.setChunkedTransferEncoding(true);

    setResponseDefaultHeaders(response, keep_alive_timeout);
    response.setStatusAndReason(Poco::Net::HTTPResponse::HTTP_OK);
32
    *response.send() << getResource(resource_name);
33 34 35
}

}