本文整理汇总了C++中WebContext::getConnection方法的典型用法代码示例。如果您正苦于以下问题:C++ WebContext::getConnection方法的具体用法?C++ WebContext::getConnection怎么用?C++ WebContext::getConnection使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WebContext
的用法示例。
在下文中一共展示了WebContext::getConnection方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: handlePage
bool WebHandler::handlePage(WebContext &ctx, ostream &stream, const URI &uri) {
if (WebPageHandlerGroup::handlePage(ctx, stream, uri)) {
// Tell client to cache static pages
if (ctx.isStatic()) ctx.getConnection().getResponse().setCacheExpire();
// Set default content type
Response &response = ctx.getConnection().getResponse();
if (!response.has("Content-Type"))
response.setContentTypeFromExtension(uri.getPath());
return true;
}
return false;
}
示例2: buildResponse
void WebHandler::buildResponse(HTTP::Context *_ctx) {
if (!initialized) THROW("Not initialized");
WebContext *ctx = dynamic_cast<WebContext *>(_ctx);
if (!ctx) THROW("Expected WebContext");
Connection &con = ctx->getConnection();
// Check request method
Request &request = con.getRequest();
switch (request.getMethod()) {
case RequestMethod::HTTP_GET:
case RequestMethod::HTTP_POST:
break;
default: return; // We only handle GET and POST
}
try {
if (!allow(*ctx)) errorPage(*ctx, StatusCode::HTTP_UNAUTHORIZED);
else {
URI uri = con.getRequest().getURI();
const string &path = uri.getPath();
if (path[path.length() - 1] == '/') uri.setPath(path + "index.html");
// TODO sanitize path
if (!handlePage(*ctx, con, uri))
errorPage(*ctx, StatusCode::HTTP_NOT_FOUND);
}
} catch (const Exception &e) {
StatusCode code = StatusCode::HTTP_INTERNAL_SERVER_ERROR;
if (0 < e.getCode()) code = (StatusCode::enum_t)e.getCode();
errorPage(*ctx, code, e.getMessage());
LOG_ERROR(code << ": " << e);
}
con << flush;
}
示例3: allow
bool WebHandler::allow(WebContext &ctx) const {
return ipFilter.isAllowed(ctx.getConnection().getClientIP().getIP());
}