-3

我正在使用 Qt,我应该做的是给出一个QString包含我的 URL,在打开页面之前,我想知道这是否可以访问。

我阅读了 的文档,QNetworkReply发现不同类型的错误有不同的代码(例如:在服务器上找不到远程内容 -> 代码 203)。

问题是:从 my 开始QString,如何获取这些代码值?

4

1 回答 1

1

在打开页面之前如何知道这是否可以访问?

这不是您可以提前知道的,而是反复试验:

  1. 提出请求
  2. 检查错误
  3. 获取错误代码

我怎样才能做到这一点?

让我们以文档中的示例为例:

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();

这应该打印错误代码(如果有)。

于 2020-10-19T08:58:17.320 回答