summaryrefslogtreecommitdiffstats
path: root/src/network/access/qhttpthreaddelegate.cpp
diff options
context:
space:
mode:
authorMandeep Sandhu <mandeepsandhu.chd@gmail.com>2013-11-15 18:42:22 +0530
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-01-30 07:56:47 +0100
commitfd5dd2712656cbc674c8360754394e41dd82e40c (patch)
tree5067813ed024563a7aa7b1fac2199fcf4de27cd2 /src/network/access/qhttpthreaddelegate.cpp
parentb584b6c478bae641ce6fbab25560bfb4ce831e5c (diff)
Add more specific HTTP error codes to QNetworkReply::NetworkError
A few more HTTP status codes from the 4xx and 5xx series have been added to QNetworkReply::NetworkError. For content errors, the following codes have been added: 1. 409 - Resource Conflict 2. 410 - Resource Gone For server related errors, the following codes have been added: 1. 500 - Internal Server Error 2. 501 - Operation Not Implemented 3. 503 - Service Unavailable Few of the above codes are quite possible when communicating with REST based services. NOTE: ===== * HTTP error status 400 is interpreted as QNetworkReply::ProtocolInvalidOperationError. * QNetworkReply::UnknownServerError is returned for all server related errors (5xx) not listed above. [ChangeLog][QtNetwork][QNetworkReply] Added more (specific) HTTP status codes to NetworkError enum. Task-number: QTBUG-30880 Change-Id: I9d2a133f6b3869f26710c6eb930dd8b08df31108 Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Diffstat (limited to 'src/network/access/qhttpthreaddelegate.cpp')
-rw-r--r--src/network/access/qhttpthreaddelegate.cpp25
1 files changed, 24 insertions, 1 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;