1
class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler):
def do_POST(self):
ctype, pdict = cgi.parse_header(self.headers.getheader('content-type'))
postvars = {}
try:
if ctype == 'application/x-www-form-urlencoded':
length = int(self.headers.getheader('content-length'))
postvars = cgi.parse_qs(self.rfile.read(length), keep_blank_values=1)
self.send_response(200)
self.send_header("Content-type", "text")
self.send_header("Content-length", str(len(body)))
self.end_headers()
self.wfile.write(body)
except:
print "Error"
def httpd(handler_class=MyHandler, server_address = ('2.3.4.5', 80)):
try:
print "Server started"
srvr = BaseHTTPServer.HTTPServer(server_address, handler_class)
srvr.serve_forever() # serve_forever
except KeyboardInterrupt:
server.socket.close()
if __name__ == "__main__":
httpd()
나는 대부분의 코드를 준비했습니다. 클라이언트가 비활성 상태이거나 응답 시간이 10 초 (예 : https://stackoverflow.com/a/265741/204623) 인 경우 연결을 닫을 코드를 추가해야합니다. 기본적으로 send_response(), wfile.write() 등을 호출 할 때 서버가 차단되지 않도록하고 싶습니다. 어떻게해야합니까?간단한 HTTP POST 서버를 작성하는 방법은 무엇입니까?
왜 빌드하고 싶은지 확실하지 않지만 많은 조회수를 얻지는 않을 것이며 POST 및/또는 GET 이외의 다른 작업을 수행 할 필요가 없으며 일반인이 아니더라도 Google을 사용할 수 있습니다. App Engine은 설치하기 쉽습니다. – apple16