我已经开始学习C++ Drogon框架。我阅读了关于Drogon HttpControllers的官方和非官方文档,所以我尝试用2个端点做一些简单的Web服务器。
创建控制器类:
--- ApiController.hpp
#pragma once
#include <drogon/HttpController.h>
// internal
#include "forwards.hpp"
class ApiController : public drogon::HttpController<ApiController>
{
public:
METHOD_LIST_BEGIN
METHOD_ADD(ApiController::get, "/get", Get);
METHOD_ADD(ApiController::post, "/post", Post);
METHOD_LIST_END
// your declaration of processing function maybe like this:
void get(const HttpRequestPtr& req, Callback &&callback);
void post(const HttpRequestPtr& req, Callback &&callback ) const;
};
添加控制器到cmake和得到错误时,我试图测试“/得到”.关于屏幕截图enter image description here的详细信息。下面是我的服务器配置:
{
"listeners": [
{
"address": "0.0.0.0",
"port": 8080,
"https": false
}
],
"app": {
"server_header_field": ""
}
}
为什么drogon不使用我的类当我做app().run()?谢谢你的关注,希望有人能帮我解决这个问题
1条答案
按热度按时间rkue9o1l1#
主要问题是在URL路径,我用来调用我的服务器。
Drogon框架有嵌入式路径Map,需要使用“HOST:PORT/namespace/class_name/method”而不是“HOST:PORT/method”
下面是一些对我HttpController的有效http-request示例:enter image description here