如何在 Casablanca 中优雅地解析 URI
How to parse an URI elegantly in Casablanca
如何在 C++ 中优雅地解析请求(服务器端)的 URI?
URI 在Casablanca Documentation 中定义为:
protocol : // server [: port] / path ? query # fragment
比方说,我希望路径(包含所有元素)作为列表,而查询作为 key/value 对的列表,所以
会导致
std::list<string> path;
path.push_back("foo");
path.push_back("bar");
std::list<std::pair<string, string>> query;
query.push_back(std::make_pair("val1", "1"));
query.push_back(std::make_pair("val2", "yo"));
我想避免像提议的那样自己进行解析 elsewhere,主要是出于可移植性和性能方面的原因。
cpp-netlib does not seem to be part of boost 但我不想介绍新库。
Casablanca 有一个 URI 对象,但我找不到任何解析或迭代器。
有没有办法只使用 boost、c++、casablanca/cpprestsdk 来解决这个问题?
URI 中似乎有静态辅助函数 class,例如uri::split_query and uri::split_path 完全按照要求执行。
我在查看使用
的 this gist 后找到了对它们的引用
auto http_get_vars = uri::split_query(request.request_uri().query());
如何在 C++ 中优雅地解析请求(服务器端)的 URI?
URI 在Casablanca Documentation 中定义为:
protocol : // server [: port] / path ? query # fragment
比方说,我希望路径(包含所有元素)作为列表,而查询作为 key/value 对的列表,所以
会导致
std::list<string> path;
path.push_back("foo");
path.push_back("bar");
std::list<std::pair<string, string>> query;
query.push_back(std::make_pair("val1", "1"));
query.push_back(std::make_pair("val2", "yo"));
我想避免像提议的那样自己进行解析 elsewhere,主要是出于可移植性和性能方面的原因。
cpp-netlib does not seem to be part of boost 但我不想介绍新库。
Casablanca 有一个 URI 对象,但我找不到任何解析或迭代器。
有没有办法只使用 boost、c++、casablanca/cpprestsdk 来解决这个问题?
URI 中似乎有静态辅助函数 class,例如uri::split_query and uri::split_path 完全按照要求执行。
我在查看使用
的 this gist 后找到了对它们的引用auto http_get_vars = uri::split_query(request.request_uri().query());