self.socket.readyRead.connect(self.receiveData)
def receiveData(self):
- while self.socket.canReadLine():
- line = str(self.socket.readLine()).strip()
- print '<', line
+ # TODO: read in chunks.
+ for line in str(self.socket.readAll()).split('\r\n'):
self.httpRequestParser.handle(line)
self.method = None
self.request_path = None
self.http_version = None
- self.message = ''
+ self.headers = {}
+ self.data = {}
# Set initial state.
self.state = self.HTTP_NONE
"""
for state in self.HTTP_STATES:
if getattr(self, 'HTTP_%s' % state) == self.state:
+ print self.state, line
getattr(self, 'handle%s' % state.title())(line)
break
else:
self.headers[key] = value
else:
self.state += 1
+ self.handle(line)
def handleEmpty(self, line):
"""
"""
Append to message body.
"""
- self.message += line
+ self.data = dict(pair.split('=', 2) for pair in line.split('&'))
+ print self.data