我试图QUrl
一块一块地构建:
QUrl url{"https://host.org/path"};
url.setScheme("http");
url.setPort(81);
url.setUserName("user");
url.setPassword("password");
url.setHost("server.com");
QUrlQuery urlQuery;
urlQuery.setQueryItems({{"key1", "value1"}, {"key2", "value2"}, {"key3", "value3"}});
url.setQuery(urlQuery);
url.setFragment("fragment");
//url.setPath("dir/file.htm");
qDebug() << url;
输出(途中不小心漏掉了密码):
QUrl(" http://user@server.com:81/path?key1=value1&key2=value2&key3=value3#fragment ")
首先,如果QUrl
是默认构造的,那么使用设置器我根本无法向其中添加任何内容。
在上面的代码中,如果我取消注释最后一行,则输出变为QUrl("")
. 那就是QUrl::setPath
清理QUrl
实例的整个内部表示。
上述两种行为都正常吗?还是他们是虫子?
我使用 Qt 5.7.1。
看起来,简单的字符串连接不太容易出错。