我正在使用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说,
对于非分层方案,路径将是方案声明之后的所有内容
但是如果我需要指定路径和权限怎么办?
答案 0 :(得分:3)
尝试通过调用QUrl::setPath()
函数来设置路径,如下所示:
url.setPath("/stream"); // Note the slash symbol.
相反。它将为您带来预期的结果,即rtsp://camera.lan/stream
。