diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/network/access/qhttpthreaddelegate.cpp | 25 | ||||
-rw-r--r-- | src/network/access/qnetworkreply.cpp | 18 | ||||
-rw-r--r-- | src/network/access/qnetworkreply.h | 10 |
3 files changed, 51 insertions, 2 deletions
diff --git a/src/network/access/qhttpthreaddelegate.cpp b/src/network/access/qhttpthreaddelegate.cpp index ee3911c72c..b7e8bb3f72 100644 --- a/src/network/access/qhttpthreaddelegate.cpp +++ b/src/network/access/qhttpthreaddelegate.cpp @@ -60,6 +60,10 @@ static QNetworkReply::NetworkError statusCodeFromHttp(int httpStatusCode, const QNetworkReply::NetworkError code; // we've got an error switch (httpStatusCode) { + case 400: // Bad Request + code = QNetworkReply::ProtocolInvalidOperationError; + break; + case 401: // Authorization required code = QNetworkReply::AuthenticationRequiredError; break; @@ -80,15 +84,34 @@ static QNetworkReply::NetworkError statusCodeFromHttp(int httpStatusCode, const code = QNetworkReply::ProxyAuthenticationRequiredError; break; + case 409: // Resource Conflict + code = QNetworkReply::ContentConflictError; + break; + + case 410: // Content no longer available + code = QNetworkReply::ContentGoneError; + break; + case 418: // I'm a teapot code = QNetworkReply::ProtocolInvalidOperationError; break; + case 500: // Internal Server Error + code = QNetworkReply::InternalServerError; + break; + + case 501: // Server does not support this functionality + code = QNetworkReply::OperationNotImplementedError; + break; + + case 503: // Service unavailable + code = QNetworkReply::ServiceUnavailableError; + break; default: if (httpStatusCode > 500) { // some kind of server error - code = QNetworkReply::ProtocolUnknownError; + code = QNetworkReply::UnknownServerError; } else if (httpStatusCode >= 400) { // content error we did not handle above code = QNetworkReply::UnknownContentError; diff --git a/src/network/access/qnetworkreply.cpp b/src/network/access/qnetworkreply.cpp index ba6f706f7a..faa8464463 100644 --- a/src/network/access/qnetworkreply.cpp +++ b/src/network/access/qnetworkreply.cpp @@ -173,6 +173,21 @@ QNetworkReplyPrivate::QNetworkReplyPrivate() again, but this failed for example because the upload data could not be read a second time. + \value ContentConflictError the request could not be completed due + to a conflict with the current state of the resource. + + \value ContentGoneError the requested resource is no longer + available at the server. + + \value InternalServerError the server encountered an unexpected + condition which prevented it from fulfilling the request. + + \value OperationNotImplementedError the server does not support the + functionality required to fulfill the request. + + \value ServiceUnavailableError the server is unable to handle the + request at this time. + \value ProtocolUnknownError the Network Access API cannot honor the request because the protocol is not known @@ -191,6 +206,9 @@ QNetworkReplyPrivate::QNetworkReplyPrivate() \value ProtocolFailure a breakdown in protocol was detected (parsing error, invalid or unexpected responses, etc.) + \value UnknownServerError an unknown error related to + the server response was detected + \sa error() */ diff --git a/src/network/access/qnetworkreply.h b/src/network/access/qnetworkreply.h index a7db2d189c..f11a5e816a 100644 --- a/src/network/access/qnetworkreply.h +++ b/src/network/access/qnetworkreply.h @@ -93,12 +93,20 @@ public: ContentNotFoundError, AuthenticationRequiredError, ContentReSendError, + ContentConflictError, + ContentGoneError, UnknownContentError = 299, // protocol errors ProtocolUnknownError = 301, ProtocolInvalidOperationError, - ProtocolFailure = 399 + ProtocolFailure = 399, + + // Server side errors (401-499) + InternalServerError = 401, + OperationNotImplementedError, + ServiceUnavailableError, + UnknownServerError = 499 }; ~QNetworkReply(); |