如何在QUrl中设置主机路径?

时间:2018-10-19 14:26:35

标签: c++ qt url

我正在使用QUrl构造字符串url。假设我需要获取一个“ rtsp://camera.lan/stream”网址。

下面的代码给出了“ rtsp://camera.lan”网址:

QUrl url; 
url.setScheme("rtsp"); 
url.setHost("camera.lan"); 
auto url_str = url.toString().toStdString();  // "rtsp://camera.lan"

这提供了“ rtsp:camera.lan”网址:

url.setScheme("rtsp"); 
url.setPath("camera.lan"); 
auto url_str = url.toString().toStdString();  // "rtsp:camera.lan"

但是如果我使用主机设置路径 ,则该主机无效:

url.setScheme("rtsp"); 
url.setHost("camera.lan"); 
url.setPath("stream"); 
auto url_str = url.toString().toStdString();  // gives ""
bool url_is_valid = url.isValid();  // false

docs说,

  

对于非分层方案,路径将是方案声明之后的所有内容

但是如果我需要指定路径权限怎么办?

1 个答案:

答案 0 :(得分:3)

尝试通过调用QUrl::setPath()函数来设置路径,如下所示:

url.setPath("/stream"); // Note the slash symbol.

相反。它将为您带来预期的结果,即rtsp://camera.lan/stream