代码拉取完成,页面将自动刷新
#include "HttpServer.hpp"
#include "Session.hpp"
using namespace LogModule;
void Login(HttpRequest &req,HttpResponse &resp)
{
// 根据req,动态构建resp
LOG(LogLevel::DEBUG) << "进入到了登录模块" << req.Path() << ", " << req.Args();
std::string req_args = req.Args();
// 1.解析参数格式,得到要的参数
// 2.访问数据库,验证对应的用户是否是合法的用户,其他工作....
// SessionManager m;
// session_id = m.CreateSession(xxxx);
// 3.登录成功
// std::string body = "<html><body><p>Login Success!</p></body></html>";
std::string body = req.GetContent("wwwroot/success.html");
resp.SetCode(200);
resp.SetHeader("Content-Length",std::to_string(body.size()));
resp.SetHeader("Content-Type","text/html");
resp.SetHeader("Set-Cookie","username=zhangsan&passwd=hahahaha");
resp.SetBody(body);
// resp.SetCode(302);
// resp.SetHeader("Location","/");
}
void Register(HttpRequest &req,HttpResponse &resp)
{
// 根据req,动态构建resp
LOG(LogLevel::DEBUG) << "进入到了注册模块" << req.Path() << ", " << req.Args();
}
void Search(HttpRequest &req,HttpResponse &resp)
{
// 根据req,动态构建resp
LOG(LogLevel::DEBUG) << "进入到了搜索模块" << req.Path() << ", " << req.Args();
}
void Test(HttpRequest &req,HttpResponse &resp)
{
// 根据req,动态构建resp
LOG(LogLevel::DEBUG) << "进入到了测试模块" << req.Path() << ", " << req.Args();
}
int main(int argc,char *argv[])
{
if(argc != 2)
{
std::cout << "Usage: " << argv[0] << " port" << std::endl;
return 1;
}
auto httpserver = std::make_unique<HttpServer>(std::stoi(argv[1]));
// 要让服务器具有登录功能
httpserver->Resgiter("/login",Login); // restful风格的网络请求接口
httpserver->Resgiter("/Register",Register);
httpserver->Resgiter("/Search",Search);
httpserver->Resgiter("/Test",Test);
httpserver->Start();
return 0;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。