1.概述
QUrlQuery 是Qt框架中用于操作URL查询部分的类,提供了一些方法来解析和构造URL查询字符串。URL查询部分通常是在URL中使用 "?" 后面的一串参数,用于传递数据或配置信息。
如下图所示:也就是 "?" 后面的一串参数。
2.QUrlQuery的主要功能
- 解析URL查询字符串:可以将URL查询字符串解析为键值对形式的参数。
- 构造URL查询字符串:可以根据给定的参数构造URL查询字符串。
- 操作URL查询参数:可以获取、添加、修改、删除URL查询参数。
3.常用方法
构造和解析URL查询参数:
QUrlQuery()
:默认构造函数,创建一个空的QUrlQuery对象。QUrlQuery(const QString& queryString)
:根据URL查询字符串构造一个QUrlQuery对象。setQuery(const QString& queryString)
:根据URL查询字符串设置QUrlQuery对象的查询参数。
设置和获取查询参数:
addQueryItem(const QString& key, const QString& value)
:添加一个查询参数。setQueryItems(const QList<QPair<QString, QString>>& queryItems)
:设置查询参数列表。setQueryDelimiters(QChar valueDelimiter, QChar pairDelimiter)
:设置查询参数中的值分隔符和键值对分隔符。setQueryItemValue(const QString& key, const QString& value)
:设置指定键的查询参数的值。allQueryItemValues(const QString& key)
:获取指定键的所有查询参数值。queryItemValue(const QString& key)
:获取指定键的查询参数值,如果键不存在则返回默认值。queryItems()
:获取所有的查询参数键值对。
删除查询参数:
removeQueryItem(const QString& key)
:删除指定键的查询参数。removeAllQueryItems(const QString& key)
:删除所有具有指定键的查询参数。clear()
:清除所有的查询参数。
构造URL查询字符串:
toString(QFlags<QUrl::FormattingOptions> options = QUrl::None) const
:将QUrlQuery对象转换为URL查询字符串。可以使用FormattingOptions来指定查询参数的编码格式。
4.示例
// 创建一个URL查询对象
QUrlQuery query;
// 添加查询参数
query.addQueryItem("name", "John");
query.addQueryItem("age", "25");
// 获取查询参数
QList<QPair<QString, QString> > params = query.queryItems();
foreach(auto param, params) {
qDebug() << param.first << "=" << param.second;
}
// 构造URL查询字符串
QString queryString = query.toString(QUrl::FullyEncoded);
qDebug() << "URL Query String:" << queryString;
// 解析URL查询字符串
QUrlQuery parsedQuery;
parsedQuery.setQuery(queryString);
QList<QPair<QString, QString> > parsedParams = parsedQuery.queryItems();
foreach(auto param, parsedParams) {
qDebug() << param.first << "=" << param.second;
}
运行结果:
"name" = "John"
"age" = "25"
URL Query String: "name=John&age=25"
"name" = "John"
"age" = "25"
5.相关参考
Qt QNetworkInterface详解_Mr.codeee的博客-CSDN博客
Qt QHostInfo详解_Mr.codeee的博客-CSDN博客
Qt QUrl详解-CSDN博客