HTTPServer/HTTPHandler.cpp
2019-08-02 15:42:27 -07:00

47 lines
1.5 KiB
C++

#include "HTTPHandler.h"
#include "HTTPSession.h"
#include "HTTPService.h"
#include "HTTPRequest.h"
#include "PString.h"
#include "IMFFormData.h"
#include "Log.h"
namespace http {
int HTTPHandler::processCommand(std::string request, core::Session *session, std::stringstream &data) {
core::Log(core::LOG_DEBUG_1) << request;
coreutils::PString request1(request);
HTTPRequest httpRequest(request1);
HTTPSession *httpSession = ((HTTPService &)session->service).httpSessions.findSessionByHeader(httpRequest);
std::stringstream content;
if(((HTTPService &)session->service).pageList.processRequest(httpRequest, session, httpSession, content)) {
std::string contentType = httpRequest.getHeader("Content-Type");
core::Log(core::LOG_DEBUG_1) << contentType;
if(contentType == "multipart/form-data") {
coreutils::IMFFormData *formdata = (coreutils::IMFFormData *)httpRequest.getBody();
core::Log(core::LOG_DEBUG_1) << formdata->getCount() << ":" << formdata->toString();
std::cout << formdata->getByName("name") << std::endl;
}
httpRequest.response.setCode("200");
httpRequest.response.setText("OK");
data << httpRequest.response.getResponse(content.str());
}
else {
httpRequest.response.setCode("404");
httpRequest.response.setText("Not Found");
data << httpRequest.response.getResponse(content.str());
}
return true;
}
}