You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法使用Poco获取路径字符串:getPathAndQuery返回空值问题

解决Poco::URI getPathAndQuery()返回空字符串的问题
  • 兄弟,你这问题的核心其实是对URI结构和Poco::URI的方法理解有点小偏差!你的URI http://10.10.10.10:3535 本身没有路径和查询参数,所以getPathAndQuery()返回空是完全符合预期的!

    回忆下标准URI的结构:scheme://host:port/path?query,其中/path?query这部分才是getPathAndQuery()要获取的内容。你当前的URI只有协议、主机和端口,后面啥都没有,自然返回空字符串。

  • 给你两个实用的解决方向:

    1. 如果需要获取根路径(/):
      调用Poco::URI的normalize()方法标准化URI,它会自动给无路径的URI补充根路径:
      Poco::URI uri("http://10.10.10.10:3535");
      uri.normalize(); // 标准化后,URI会被处理为http://10.10.10.10:3535/
      std::string path(uri.getPathAndQuery());
      // 此时path的值为"/"
      
    2. 如果你的URI本该带路径/查询参数:
      确保构造URI时包含完整的路径部分,比如:
      // 带根路径的URI
      Poco::URI uri("http://10.10.10.10:3535/");
      std::string path(uri.getPathAndQuery()); // 返回"/"
      
      // 带具体路径和查询参数的URI
      Poco::URI uri2("http://10.10.10.10:3535/api/v1/user?id=100");
      std::string path2(uri2.getPathAndQuery()); // 返回"/api/v1/user?id=100"
      
  • 补充一句:你提到的示例代码里,应该是用了带有路径的URI,所以能获取到内容。估计你是简化了自己的URI,才导致出现返回空的情况~

内容的提问来源于stack exchange,提问作者Preben Enhed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:45:11