00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef HTTPRESPONSE_H
00027 #define HTTPRESPONSE_H
00028
00029 #include "httpmessage.h"
00030 #include "httpversion.h"
00031 #include <QHash>
00032
00033 class HttpResponse: public HttpMessage
00034 {
00035 public:
00036 enum StatusCode
00037 {
00038
00039 CONTINUE = 100,
00040 SWITCHING_PROTOCOLS = 101,
00041 PROCESSING = 102,
00042
00043 OK = 200,
00044 CREATED = 201,
00045 ACCEPTED = 202,
00046 NON_AUTHORITATIVE_INFORMATION = 203,
00047 NO_CONTENT = 204,
00048 RESET_CONTENT = 205,
00049 PARTIAL_CONTENT = 206,
00050 MULTI_STATUS = 207,
00051
00052 MULTIPLE_CHOICES = 300,
00053 MOVED_PERMANENTLY = 301,
00054 FOUND = 302,
00055 SEE_OTHER = 303,
00056 NOT_MODIFIED = 304,
00057 USE_PROXY = 305,
00058 SWITCH_PROXY = 306,
00059 TEMPORARY_REDIRECT = 307,
00060
00061 BAD_REQUEST = 400,
00062 UNAUTHORIZED = 401,
00063 PAYMENT_REQUIRED = 402,
00064 FORBIDDEN = 403,
00065 NOT_FOUND = 404,
00066 METHOD_NOT_ALLOWED = 405,
00067 NOT_ACCEPTABLE = 406,
00068 PROXY_AUTHENTICATION_REQUIRED = 407,
00069 REQUEST_TIMEOUT = 408,
00070 CONFLICT = 409,
00071 GONE = 410,
00072 LENGTH_REQUIRED = 411,
00073 PRECONDITION_FAILED = 412,
00074 REQUEST_ENTITY_TOO_LARGE = 413,
00075 REQUEST_URI_TOO_LONG = 414,
00076 UNSUPPORTED_MEDIA_TYPE = 415,
00077 REQUESTED_RANGE_NOT_SATISFIABLE = 416,
00078 EXPECTATION_FAILED = 417,
00079 I_AM_A_TEAPOT = 418,
00080 UNPROCESSABLE_ENTITY = 422,
00081 LOCKED = 423,
00082 FAILED_DEPENDENCY = 424,
00083 UNORDERED_COLLECTION = 425,
00084 UPGRADE_REQUIRED = 426,
00085
00086 INTERNAL_SERVER_ERROR = 500,
00087 NOT_IMPLEMENTED = 501,
00088 BAD_GATEWAY = 502,
00089 SERVICE_UNAVAILABLE = 503,
00090 GATEWAY_TIMEOUT = 504,
00091 HTTP_VERSION_NOT_SUPPORTED = 505,
00092 VARIANT_ALSO_NEGOTIATES = 506,
00093 INSUFFICIENT_STORAGE = 507,
00094 NOT_EXTENDED = 510
00095 };
00096
00097 public:
00098
00099
00100 explicit HttpResponse(const HttpVersion &httpVersion, int statusCode = OK,
00101 bool closeConnection = false);
00102 explicit HttpResponse(const HttpVersion &httpVersion, int statusCode,
00103 const QByteArray &reasonPhrase,
00104 bool closeConnection = false);
00105
00106 int statusCode() const;
00107 bool setStatusCode(int st);
00108 void setStatusCode(int st, const QByteArray &reasonPhrase);
00109
00110 QByteArray reasonPhrase() const;
00111 void setReasonPhrase(const QByteArray &reasonPhrase);
00112
00113 bool closeConnection() const;
00114 void setCloseConnection(bool close);
00115
00116 private:
00117 int m_statusCode;
00118 QByteArray m_reasonPhrase;
00119 bool m_closeConnection;
00120 };
00121
00122 inline int HttpResponse::statusCode() const
00123 {
00124 return m_statusCode;
00125 }
00126
00127 inline QByteArray HttpResponse::reasonPhrase() const
00128 {
00129 return m_reasonPhrase;
00130 }
00131
00132 inline bool HttpResponse::closeConnection() const
00133 {
00134 return m_closeConnection;
00135 }
00136
00137 #endif // HTTPRESPONSE_H