帮助处理QHttpServer。我知道QHttpServer目前处于预览状态。我有下面的代码来添加路由到服务器:
template<typename Args>
bool addHandlerWithParams(const QString &_route, QHttpServerRequest::Method _method, std::function<QHttpServerResponse(const QVariantMap&, Args&)>f)
{
// example: POST http://127.0.0.1/test/<arg>
return m_restServer->route(_route, _method, [this, f](const Args& args, const QHttpServerRequest &_req){
QVariantMap value;
const auto body = byteArrayToJsonObject(_req.body());
if (body)
value = (*body).toVariantMap();
return QtConcurrent::run([value, args, f]()
{
Args arg = args;
return f(value, arg);
});
});
}
这里,每个处理程序接收2个参数:json(检查主体和格式是否存在被省略了)和一个来自请求的参数。这很好用。但是由于我对模板C++不是很精通,问题就出现了:如何为多个参数添加处理程序(http://127.0.0.1/test//)?
我尝试使用变量模板,但我很不擅长,最后我只得到一个错误,即无法从std::frunction〈Args...,const QVariantMap&〉推断类型
1条答案
按热度按时间bn31dyow1#
举个简单的例子,m_srv是一个指向QHttpServer示例的指针: