gpt4 book ai didi

c++ - 如何在 Casablanca 中优雅地解析 URI

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:22:36 27 4
gpt4 key购买 nike

如何在 C++ 中优雅地解析请求的 URI(服务器端)?

URI 定义为 Casablanca Documentation作为:

protocol : // server [: port] / path ? query # fragment

比方说,我希望路径(包含所有元素)作为列表,而查询作为键/值对列表

http://server/foo/bar?val1=1&val2=yo

会导致

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好像不是part of boost然而,我不想介绍一个新的图书馆。

卡萨布兰卡有一个 URI对象,但我找不到任何解析或迭代器。

有没有办法只使用 boost、c++、casablanca/cpprestsdk 来解决这个问题?

最佳答案

URI 类中似乎有静态辅助函数,例如uri::split_queryuri::split_path完全按照要求执行。

我在查看 this gist 后找到了对它们的引用哪个使用

auto http_get_vars = uri::split_query(request.request_uri().query());

关于c++ - 如何在 Casablanca 中优雅地解析 URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33805177/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com