import threading
from http.server import HTTPServer, BaseHTTPRequestHandler
# import urlparse
import cgi
class PostHandler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.end_headers()
message = threading.currentThread().getName()
self.wfile.write(bytes(message,encoding='utf-8'))
self.wfile.write(bytes('\n',encoding='utf-8'))
return
def do_POST(self):
# Parse the form data posted
form = cgi.FieldStorage(
fp=self.rfile,
headers=self.headers,
environ={'REQUEST_METHOD':'POST',
'CONTENT_TYPE':self.headers['Content-Type'],
})
# Begin the response
self.send_response(200)
self.end_headers()
self.wfile.write(bytes('Client: %s\n' % str(self.client_address),encoding='utf8'))
self.wfile.write(bytes('User-agent: %s\n' % str(self.headers['user-agent']),encoding='utf8'))
self.wfile.write(bytes('Path: %s\n' % self.path,encoding='utf8'))
self.wfile.write(bytes('Form data:\n',encoding='utf8'))
# Echo back information about what was posted in the form
for field in form.keys():
field_item = form[field]
if field_item.filename:
# The field contains an uploaded file
file_data = field_item.file.read()
file_len = len(file_data)
del file_data
self.wfile.write('\tUploaded %s as "%s" (%d bytes)\n' % \
(field, field_item.filename, file_len))
else:
# Regular form value
self.wfile.write('\t%s=%s\n' % (field, form[field].value))
return
if __name__ == '__main__':
server = HTTPServer(('', 8080), PostHandler)
server.serve_forever()
http serve
最新推荐文章于 2023-07-14 09:20:13 发布