本文整理汇总了C++中WebServer::processRequest方法的典型用法代码示例。如果您正苦于以下问题:C++ WebServer::processRequest方法的具体用法?C++ WebServer::processRequest怎么用?C++ WebServer::processRequest使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WebServer
的用法示例。
在下文中一共展示了WebServer::processRequest方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: mongoose_event_handler_web_server
/**
* @brief Mongoose event handler.
* The event handler is called when an event occurs associated with the WebServer
* listening network connection.
*
* @param [in] mgConnection The network connection associated with the event.
* @param [in] event The type of event.
* @param [in] eventData Data associated with the event.
* @return N/A.
*/
static void mongoose_event_handler_web_server(
struct mg_connection *mgConnection, // The network connection associated with the event.
int event, // The type of event.
void *eventData // Data associated with the event.
) {
if (event == MG_EV_POLL) {
return;
}
ESP_LOGD(tag, "Event: %s [%d]", mongoose_eventToString(event).c_str(), mgConnection->sock);
switch (event) {
case MG_EV_HTTP_REQUEST: {
struct http_message *message = (struct http_message *) eventData;
dumpHttpMessage(message);
struct WebServerUserData *pWebServerUserData = (struct WebServerUserData *)mgConnection->user_data;
WebServer *pWebServer = pWebServerUserData->pWebServer;
pWebServer->processRequest(mgConnection, message);
break;
} // MG_EV_HTTP_REQUEST
case MG_EV_HTTP_MULTIPART_REQUEST: {
struct WebServerUserData *pWebServerUserData = (struct WebServerUserData *)mgConnection->user_data;
ESP_LOGD(tag, "User_data address 0x%d", (uint32_t)pWebServerUserData);
WebServer *pWebServer = pWebServerUserData->pWebServer;
if (pWebServer->m_pMultiPartFactory == nullptr) {
return;
}
WebServer::HTTPMultiPart *pMultiPart = pWebServer->m_pMultiPartFactory->newInstance();
struct WebServerUserData *p2 = new WebServerUserData();
ESP_LOGD(tag, "New User_data address 0x%d", (uint32_t)p2);
p2->originalUserData = pWebServerUserData;
p2->pWebServer = pWebServerUserData->pWebServer;
p2->pMultiPart = pMultiPart;
p2->pWebSocketHandler = nullptr;
mgConnection->user_data = p2;
//struct http_message *message = (struct http_message *) eventData;
//dumpHttpMessage(message);
break;
} // MG_EV_HTTP_MULTIPART_REQUEST
case MG_EV_HTTP_MULTIPART_REQUEST_END: {
struct WebServerUserData *pWebServerUserData = (struct WebServerUserData *)mgConnection->user_data;
if (pWebServerUserData->pMultiPart != nullptr) {
delete pWebServerUserData->pMultiPart;
pWebServerUserData->pMultiPart = nullptr;
}
mgConnection->user_data = pWebServerUserData->originalUserData;
delete pWebServerUserData;
WebServer::HTTPResponse httpResponse = WebServer::HTTPResponse(mgConnection);
httpResponse.setStatus(200);
httpResponse.sendData("");
break;
} // MG_EV_HTTP_MULTIPART_REQUEST_END
case MG_EV_HTTP_PART_BEGIN: {
struct WebServerUserData *pWebServerUserData = (struct WebServerUserData *)mgConnection->user_data;
struct mg_http_multipart_part *part = (struct mg_http_multipart_part *)eventData;
ESP_LOGD(tag, "file_name: \"%s\", var_name: \"%s\", status: %d, user_data: 0x%d",
part->file_name, part->var_name, part->status, (uint32_t)part->user_data);
if (pWebServerUserData->pMultiPart != nullptr) {
pWebServerUserData->pMultiPart->begin(std::string(part->var_name), std::string(part->file_name));
}
break;
} // MG_EV_HTTP_PART_BEGIN
case MG_EV_HTTP_PART_DATA: {
struct WebServerUserData *pWebServerUserData = (struct WebServerUserData *)mgConnection->user_data;
struct mg_http_multipart_part *part = (struct mg_http_multipart_part *)eventData;
ESP_LOGD(tag, "file_name: \"%s\", var_name: \"%s\", status: %d, user_data: 0x%d",
part->file_name, part->var_name, part->status, (uint32_t)part->user_data);
if (pWebServerUserData->pMultiPart != nullptr) {
pWebServerUserData->pMultiPart->data(mgStrToString(part->data));
}
break;
} // MG_EV_HTTP_PART_DATA
case MG_EV_HTTP_PART_END: {
struct WebServerUserData *pWebServerUserData = (struct WebServerUserData *)mgConnection->user_data;
struct mg_http_multipart_part *part = (struct mg_http_multipart_part *)eventData;
ESP_LOGD(tag, "file_name: \"%s\", var_name: \"%s\", status: %d, user_data: 0x%d",
part->file_name, part->var_name, part->status, (uint32_t)part->user_data);
if (pWebServerUserData->pMultiPart != nullptr) {
pWebServerUserData->pMultiPart->end();
}
break;
} // MG_EV_HTTP_PART_END
case MG_EV_WEBSOCKET_HANDSHAKE_REQUEST: {
struct WebServerUserData *pWebServerUserData = (struct WebServerUserData *)mgConnection->user_data;
WebServer *pWebServer = pWebServerUserData->pWebServer;
//.........这里部分代码省略.........