diff options
Diffstat (limited to 'project1/proj1_s4498062/webhttp/message.py')
-rw-r--r-- | project1/proj1_s4498062/webhttp/message.py | 45 |
1 files changed, 41 insertions, 4 deletions
diff --git a/project1/proj1_s4498062/webhttp/message.py b/project1/proj1_s4498062/webhttp/message.py index 2dc4240..059c765 100644 --- a/project1/proj1_s4498062/webhttp/message.py +++ b/project1/proj1_s4498062/webhttp/message.py @@ -9,12 +9,46 @@ import regexes as r import weblogging as logging
reasondict = {
- # Dictionary for code reasons
- # Format: code : "Reason"
+ 100 : 'Continue',
+ 101 : 'Switching Protocols',
200 : 'OK',
+ 201 : 'Created',
+ 202 : 'Accepted',
+ 203 : 'Non-Authoritative Information',
+ 204 : 'No Content',
+ 205 : 'Reset Content',
+ 206 : 'Partial Content',
+ 300 : 'Multiple Choices',
+ 301 : 'Moved Permanently',
+ 302 : 'Found',
+ 303 : 'See Other',
+ 304 : 'Not Modified',
+ 305 : 'Use Proxy',
+ 307 : 'Temporary Redirect',
+ 400 : 'Bad Request',
+ 401 : 'Unauthorized',
+ 402 : 'Payment Required',
403 : 'Forbidden',
404 : 'Not Found',
- 500 : 'Internal Server Error'
+ 405 : 'Method Not Allowed',
+ 406 : 'Not Acceptable',
+ 407 : 'Proxy Authentication Required',
+ 408 : 'Request Time-out',
+ 409 : 'Conflict',
+ 410 : 'Gone',
+ 411 : 'Length Required',
+ 412 : 'Precondition Failed',
+ 413 : 'Request Entity Too Large',
+ 414 : 'Request-URI Too Large',
+ 415 : 'Unsupported Media Type',
+ 416 : 'Requested range not satisfiable',
+ 417 : 'Expectation Failed',
+ 500 : 'Internal Server Error',
+ 501 : 'Not Implemented',
+ 502 : 'Bad Gateway',
+ 503 : 'Service Unavailable',
+ 504 : 'Gateway Time-out',
+ 505 : 'HTTP Version not supported',
}
@@ -48,7 +82,7 @@ class Message(object): if name in self.headers:
return self.headers[name]
else:
- return ""
+ return None
def parse_headers(self, msg):
for name, value in re.findall(r.MessageHeader, msg):
@@ -124,6 +158,9 @@ class Response(Message): def startline(self):
return "%s %d %s" % (self.version, self.code, reasondict[self.code])
+
+ def set_content_length(self):
+ self.set_header('Content-Length', len(self.body))
def __str__(self):
"""Convert the Response to a string
|