[英]How do I handle invalid URI in POCO
我想在子類HTTPRequestHandlerFactory
中的createRequestHandler(HTTPServerRequest& request)
函數中處理無效的URI客戶端請求。
我想發送響應,指出URI無效,並帶有錯誤代碼
HTTP_NOT_FOUND(404)。
RequestHandler * RequestHandlerFactory::createRequestHandler(const Poco::Net::HTTPServerRequest& request)
{
// -- handleRequest --
if ( request.getURI() != ExpectedURI )
{
// How do I send response to client that the URI is invalid?
// Example I need to send HTTP_NOT_FOUND
}
}
void sendErrorResponse(HTTPResponse::HTTPStatus status, const std::string& message)
{
response().setStatusAndReason(status);
std::string statusAndReason(NumberFormatter::format(static_cast<int>(response().getStatus())));
statusAndReason += " - ";
statusAndReason += response().getReason();
std::string page("<HTML><HEAD><TITLE>");
page += statusAndReason;
page += "</TITLE></HEAD><BODY><H1>";
page += statusAndReason;
page += "</H1>";
page += "<P>";
page += message;
page += "</P></BODY></HTML>";
response().sendBuffer(page.data(), page.size());
}
if (request.getURI() != ExpectedURI)
{
sendErrorResponse(HTTPResponse::HTTP_NOT_FOUND, request.getURI());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.