QT 5 中的 QUrl 解析

Ser*_*nya 2 c++ qt parsing qurl

我有一个QUrl这样的:

https://www.example.com/index.html#token=SomeToken&user=guest

我想获取令牌的值 ie SomeToken。我知道方法QUrl::queryItemValue,所以这段代码必须有效:

void MainWindow::get_token(QUrl url)
{
    url = url.toString().replace("?","#");
    QString token = url.queryItemValue("token");
}
Run Code Online (Sandbox Code Playgroud)

但是Qt5我不能使用这个方法,我该如何解析url?

Che*_*byl 5

里有新QUrlQuery班级Qt5。NewQUrl尚不支持此方法,因此您应该用于QUrlQuery解析(它有此方法和其他方法)。使用

QUrlQuery query(url);
qDebug() << query.queryItemValue("token");
Run Code Online (Sandbox Code Playgroud)

注意:要小心,replace因为QUrlQuery会给你正确的结果

?token=SomeToken不是一个#token=SomeToken

http://qt-project.org/doc/qt-5/qurlquery.html