先进入项目目录下的controllers文件夹
cd D:\AllProjects\CppProjects\web\testweb\controllers
创建一个控制层
drogon_ctl create controller TestCtrl
在visual studio 2019中,右键项目>添加>新建筛选器,命名为controllers
右键controllers>添加现有项>把TestCtrl.cc和TestCtrl.h添加进来
TestCtrl.cc的内容:
#include "TestCtrl.h"
#include <iostream>
using namespace std;
void TestCtrl::asyncHandleHttpRequest(const HttpRequestPtr& req, std::function<void (const HttpResponsePtr &)> &&callback){
cout<< "您当前请求的路劲:" << req->path() << endl;
cout << "获取请求参数id的值:" << req->getParameters().at("id") << endl;
cout << "获取请求体body:" << req->getBody() << endl;
auto resp = HttpResponse::newHttpResponse();
resp->setStatusCode(k200OK);
resp->setContentTypeCode(CT_TEXT_HTML);
if (req->path() == "/path1") {
resp->setBody("Hello World /path1!");
}
else if (req->path() == "/paht2") {
resp->setBody("Hello World /path2!");
}
callback(resp);
}
TestCtrl.h的内容:
#pragma once
#include <drogon/HttpSimpleController.h>
using namespace drogon;
class TestCtrl : public drogon::HttpSimpleController<TestCtrl>
{
public:
virtual void asyncHandleHttpRequest(const HttpRequestPtr& req, std::function<void (const HttpResponsePtr &)> &&callback) override;
PATH_LIST_BEGIN
// list path definitions here;
PATH_ADD("/path1", Get, Post);
PATH_ADD("/path2", Get, Post);
PATH_LIST_END
};
尝试使用Postman请求: