You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.6 KiB
55 lines
1.6 KiB
"""
|
|
@author Georg Hopp
|
|
|
|
"""
|
|
|
|
import Message
|
|
|
|
class Composer(object):
|
|
"""
|
|
compose to HTTP
|
|
=====================================================================
|
|
"""
|
|
def composeStartLine(self, message):
|
|
"""
|
|
compose a HTTP message StartLine... currently this does no check for
|
|
the validity of the StartLine.
|
|
|
|
returns str The composed HTTP start line (either Request or Status)
|
|
|
|
@message: HttpMessage The message that should be composed.
|
|
"""
|
|
return message.getStartLine() + '\r\n'
|
|
|
|
def composeHeaders(self, message):
|
|
"""
|
|
this creates header lines for each key/value[n] pair.
|
|
|
|
returns str All headers composed to an HTTP string.
|
|
|
|
@message: HttpMessage The message to compose the header from.
|
|
"""
|
|
headers = message.getHeaders()
|
|
return '\r\n'.join([':'.join(h) for h in headers]) + '\r\n'
|
|
|
|
def composeStartLineHeaders(self, message):
|
|
"""
|
|
Compose the start line and the headers.
|
|
|
|
returns str The start line and the headers as HTTP string.
|
|
|
|
@message: HttpMessage The message to be composed.
|
|
"""
|
|
return self.composeStartLine(message) + self.composeHeaders(message)
|
|
|
|
def compose(self, message):
|
|
"""
|
|
Compose the whole message to an HTTP string.
|
|
|
|
returns str The whole message as an HTTP string.
|
|
|
|
@message: HttpMessage The message to be composed.
|
|
"""
|
|
return self.composeStartLineHeaders(message) + "\r\n" + message.getBody()
|
|
|
|
# vim: set ft=python et ts=8 sw=4 sts=4:
|