Project

General

Profile

Bug #2913 » serverEncodeChunked.py

minimal python3 backend http server to recreate the issue - blowfist, 2018-10-07 02:43

 
# a very simple python3 HTTP responder
# which hands chunked encoded packets

import sys
from http.server import BaseHTTPRequestHandler, HTTPServer

def chunk_data(data, chunk_size):
dl = len(data)
ret = ""
for i in range(dl // chunk_size):
ret += "%s\r\n" % (hex(chunk_size)[2:])
ret += "%s\r\n" % (data[i * chunk_size : (i + 1) * chunk_size])

if len(data) % chunk_size != 0:
ret += "%s\r\n" % (hex(len(data) % chunk_size)[2:])
ret += "%s\r\n" % (data[-(len(data) % chunk_size):])

ret += "0\r\n\r\n"
return ret

class responderHTTPServerRequestHandler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)

self.send_header('Content-type', 'text/html')
self.send_header('Transfer-Encoding', 'chunked')
self.end_headers()

result="<html>\n<body>\n<h1>This works!</h1>\n</body>\n</html>"

#self.wfile.write(bytes(result, "utf-8"))
self.wfile.write(bytes(chunk_data(result, 5), "utf-8"))
def do_HEAD(self):
self.do_GET()

def main():
httpd = HTTPServer(('127.0.0.1', 6080), responderHTTPServerRequestHandler)
httpd.serve_forever()

main()
(3-3/3)