3

我目前正在 Qt 中编写一个网络应用程序,需要以以下形式分隔网络地址:

example.org:1234

分成单独的主机名和端口 QStrings。

是否有 Qt 函数可以轻松解析并检查给定的输入是否正确?

提前致谢!

4

2 回答 2

5

这很简单;您只需将QUrl类与构造函数host()port()方法一起使用,如下所示:

QUrl url("http://example.org:1234")
qDebug() << "Host:" << url.host();
qDebug() << "Port:" << url.port();

至于您避免在每个 url 中使用方案的评论,您可以使用

url.setScheme("ftp");

或者

url.setScheme("http");
于 2014-05-22T03:46:24.053 回答
1

是的,您应该使用QUrl::fromUserInput函数来解析字符串,然后使用 QUrl 对象的主机端口方法来获取您想要的 QStrings。

auto url{ QUrl::fromUserInput(address) };
auto host{ url.host() };
auto port{ QString::number(url.port()) };
于 2020-08-30T16:19:05.213 回答