如何获取URL的状态?
How to get the status of an URL?
我正在使用 Qt,我应该做的是给一个包含我的 URL 的 QString
,在打开页面之前,我想知道这是否可以访问。
我阅读了 QNetworkReply
的文档,发现不同类型的错误有不同的代码(例如:在服务器上找不到远程内容 -> 代码 203)。
问题是:从我的QString
开始,我怎样才能得到那些代码值?
如何在打开页面之前知道是否可以访问?
这不是你能提前知道的,而是一个试错:
- 发出请求
- 检查错误
- 获取错误代码
我该怎么做?
让我们以documentation为例:
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
QNetworkRequest request;
request.setUrl(QUrl("http://put.your-url.here"));
QNetworkReply *reply = manager->get(request);
connect(reply, &QIODevice::readyRead, this, &MyClass::slotReadyRead);
connect(reply, &QNetworkReply::errorOccurred,
this, &MyClass::slotError);
connect(reply, &QNetworkReply::sslErrors,
this, &MyClass::slotSslErrors);
现在在执行MyClass::slotError
,写入:
qDebug() << static_cast<QNetworkReply *>(sender())->error();
这应该打印错误代码(如果有)。
我正在使用 Qt,我应该做的是给一个包含我的 URL 的 QString
,在打开页面之前,我想知道这是否可以访问。
我阅读了 QNetworkReply
的文档,发现不同类型的错误有不同的代码(例如:在服务器上找不到远程内容 -> 代码 203)。
问题是:从我的QString
开始,我怎样才能得到那些代码值?
如何在打开页面之前知道是否可以访问?
这不是你能提前知道的,而是一个试错:
- 发出请求
- 检查错误
- 获取错误代码
我该怎么做?
让我们以documentation为例:
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
QNetworkRequest request;
request.setUrl(QUrl("http://put.your-url.here"));
QNetworkReply *reply = manager->get(request);
connect(reply, &QIODevice::readyRead, this, &MyClass::slotReadyRead);
connect(reply, &QNetworkReply::errorOccurred,
this, &MyClass::slotError);
connect(reply, &QNetworkReply::sslErrors,
this, &MyClass::slotSslErrors);
现在在执行MyClass::slotError
,写入:
qDebug() << static_cast<QNetworkReply *>(sender())->error();
这应该打印错误代码(如果有)。