j'ai essayé de construire QUrl
pièce par pièce:pièce de construction qurl par pièce
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;
sortie (mot de passe est accidentellement manqué sur le chemin):
qurl ("http://[email protected]:81/path?key1=value1&key2=value2&key3=value3#fragment")
Tout d'abord, si QUrl
est construit par défaut, je ne peux rien y ajouter à l'aide de setters.
Dans le code ci-dessus si je ne décommente pas la dernière ligne, la sortie est devenue QUrl("")
. C'est QUrl::setPath
nettoyer la totalité de la représentation interne de l'instance QUrl
.
Les deux comportements mentionnés sont-ils normaux? Ou sont-ils les bugs?
J'utilise Qt 5.7.1.
Il semble que cette simple concaténation de chaîne soit beaucoup moins sujette aux bogues.
Si j'écris 'QUrl url (" server.com "); url.setScheme ("http"); 'alors' url' contient 'http: server.com' et' QNetworkAccessManager' me dit 'Host not found'. Est-ce normal? – Orient