diff options
| author | Felix (xq) Queißner <git@mq32.de> | 2020-06-16 23:01:16 +0200 |
|---|---|---|
| committer | Felix (xq) Queißner <git@mq32.de> | 2020-06-16 23:01:16 +0200 |
| commit | 94dbe30902e36cedb30cb89ea3bd7ecd6c5a03f2 (patch) | |
| tree | 98b32b834960a59102118630f4d936671081f6c7 /src/webclient.cpp | |
| parent | a3f3e3933c4a2522e233917a6795c6e9d677e65c (diff) | |
| download | kristall-94dbe30902e36cedb30cb89ea3bd7ecd6c5a03f2.tar.gz | |
Adds improved error handling.
Diffstat (limited to 'src/webclient.cpp')
| -rw-r--r-- | src/webclient.cpp | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/src/webclient.cpp b/src/webclient.cpp index b317692..40beec0 100644 --- a/src/webclient.cpp +++ b/src/webclient.cpp @@ -71,15 +71,36 @@ void WebClient::on_finished() { if(this->current_reply->error() != QNetworkReply::NoError) { + NetworkError error = UnknownError; + switch(this->current_reply->error()) + { + case QNetworkReply::ConnectionRefusedError: error = ConnectionRefused; break; + case QNetworkReply::RemoteHostClosedError: error = ProtocolViolation; break; + case QNetworkReply::HostNotFoundError: error = HostNotFound; break; + case QNetworkReply::TimeoutError: error = Timeout; break; + case QNetworkReply::SslHandshakeFailedError: error = TlsFailure; break; + + case QNetworkReply::ContentAccessDenied: error = Unauthorized; break; + case QNetworkReply::ContentOperationNotPermittedError: error = BadRequest; break; + case QNetworkReply::ContentNotFoundError: error = ResourceNotFound; break; + case QNetworkReply::AuthenticationRequiredError: error = Unauthorized; break; + case QNetworkReply::ContentGoneError: error = ResourceNotFound; break; + + case QNetworkReply::InternalServerError: error = InternalServerError; break; + case QNetworkReply::OperationNotImplementedError: error = InternalServerError; break; + case QNetworkReply::ServiceUnavailableError: error = InternalServerError; break; + default: + qDebug() << "Unhandled server error:" << this->current_reply->error(); + break; + } + qDebug() << "web network error" << this->current_reply->errorString(); - emit this->networkError(UnknownError, this->current_reply->errorString()); + emit this->networkError(error, this->current_reply->errorString()); } else { auto mime = this->current_reply->header(QNetworkRequest::ContentTypeHeader).toString(); - // qDebug() << this->current_reply->url() << mime; - emit this->requestComplete(this->body, mime); this->body.clear(); @@ -90,6 +111,7 @@ void WebClient::on_finished() void WebClient::on_sslErrors(const QList<QSslError> &errors) { + qDebug() << "HTTP SSL Errors:"; for(auto const & err : errors) qDebug() << err; this->current_reply->ignoreSslErrors(); |
