如何在Qt5中检查url是否可用?

弗拉顿

使用Qt5,如何简单地检查给定的URL是否可用?

不是为信号槽使用特殊功能,而只是使用类似的bool isUrlAvailable(QString url)功能,有没有类似的功能?

更新QUrl.isValid()是不正确的答案,它只是检查url的格式是否正确。

Update 2 QUrl.host()也是错误的答案,它只是返回给定URL的主机部分,它不检查其可用性。

Update 3 ping主机也不正确,因为url可能可用,但不接受icmp echo(= ping)

睡衣

是的,您可以对给定的URL进行HEAD请求。

bool urlExists (QString url_string) {
    QUrl url(url_string);
    QTcpSocket socket;
    socket.connectToHost(url.host(), 80);
    if (socket.waitForConnected()) {
        socket.write("HEAD " + url.path().toUtf8() + " HTTP/1.1\r\n"
                     "Host: " + url.host().toUtf8() + "\r\n\r\n");
        if (socket.waitForReadyRead()) {
            QByteArray bytes = socket.readAll();
            if (bytes.contains("200 OK")) {
                return true;
            }
        }
    }
    return false;
}

这只是一个示例200 OK,您可能还想检查2XX或3XX(重定向)类中的状态码是否是其他代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Qt5中检查url是否可用?

来自分类Dev

如何在Fedora 30中安装Qt5

来自分类Dev

如何在Android 2.2中检查信号是否可用

来自分类Dev

如何在带有qmake和qt5的-isystem(系统头)中包含Qt的头?

来自分类Dev

Qt5 C ++如何访问模型中的项目以检查状态?

来自分类Dev

如何在Qt中的sqlite中检查列是否存在

来自分类Dev

如何在Linux上打印Qt:HANDLE?(Qt5)

来自分类Dev

如何检查密钥对中的密钥是否可用?

来自分类Dev

如何在Qt5中启用不赞成使用的功能

来自分类Dev

如何在Ubuntu 12.04中安装Qt5 X11 Extras模块?

来自分类Dev

如何在Qt5中将键盘事件伪造为小部件

来自分类Dev

如何在Qt5中的小部件上画一条线

来自分类Dev

Qt5:如何在本地文件系统中读取/写入文件

来自分类Dev

如何在Ubuntu 12.04中安装Qt5 X11 Extras模块?

来自分类Dev

如何在Qt5中将键盘事件伪造为小部件

来自分类Dev

Qt5:如何在本地文件系统中读取/写入文件

来自分类Dev

如何在Ubuntu 16.04中为Qt5安装Declarative模块?

来自分类Dev

QT5如何在ui设计器中访问对象?

来自分类Dev

如何在Ubuntu 16.04 LTS上安装Qt5?

来自分类Dev

如何在Ubuntu 16.04 LTS上安装Qt5?

来自分类Dev

如何在Swift 5中检查String是否以字母开头?

来自分类Dev

如何检测Qt5中的QObject :: moveToThread()故障?

来自分类Dev

如何修复Qt5中的gstreamer错误?

来自分类Dev

如何从 Qt5 中的 SLOT 返回值?

来自分类Dev

QML QT5中如何显示分配的属性组件?

来自分类Dev

如何在访问之前检查 aws sqs 队列是否可用?

来自分类Dev

如何检查restSecureServicesPort是否可用?

来自分类Dev

如何检查端口在Inno Setup中是否可用?

来自分类Dev

我如何检查套接字中是否有可用的东西?

Related 相关文章

  1. 1

    如何在Qt5中检查url是否可用?

  2. 2

    如何在Fedora 30中安装Qt5

  3. 3

    如何在Android 2.2中检查信号是否可用

  4. 4

    如何在带有qmake和qt5的-isystem(系统头)中包含Qt的头?

  5. 5

    Qt5 C ++如何访问模型中的项目以检查状态?

  6. 6

    如何在Qt中的sqlite中检查列是否存在

  7. 7

    如何在Linux上打印Qt:HANDLE?(Qt5)

  8. 8

    如何检查密钥对中的密钥是否可用?

  9. 9

    如何在Qt5中启用不赞成使用的功能

  10. 10

    如何在Ubuntu 12.04中安装Qt5 X11 Extras模块?

  11. 11

    如何在Qt5中将键盘事件伪造为小部件

  12. 12

    如何在Qt5中的小部件上画一条线

  13. 13

    Qt5:如何在本地文件系统中读取/写入文件

  14. 14

    如何在Ubuntu 12.04中安装Qt5 X11 Extras模块?

  15. 15

    如何在Qt5中将键盘事件伪造为小部件

  16. 16

    Qt5:如何在本地文件系统中读取/写入文件

  17. 17

    如何在Ubuntu 16.04中为Qt5安装Declarative模块?

  18. 18

    QT5如何在ui设计器中访问对象?

  19. 19

    如何在Ubuntu 16.04 LTS上安装Qt5?

  20. 20

    如何在Ubuntu 16.04 LTS上安装Qt5?

  21. 21

    如何在Swift 5中检查String是否以字母开头?

  22. 22

    如何检测Qt5中的QObject :: moveToThread()故障?

  23. 23

    如何修复Qt5中的gstreamer错误?

  24. 24

    如何从 Qt5 中的 SLOT 返回值?

  25. 25

    QML QT5中如何显示分配的属性组件?

  26. 26

    如何在访问之前检查 aws sqs 队列是否可用?

  27. 27

    如何检查restSecureServicesPort是否可用?

  28. 28

    如何检查端口在Inno Setup中是否可用?

  29. 29

    我如何检查套接字中是否有可用的东西?

热门标签

归档