我使用python编写了一个HTTP服务器,但我不知道如何获取HTTP正文。我该怎么做才能获得HTTP正文?
这是我的代码:
from http.server import HTTPServer,BaseHTTPRequestHandler
class MyHTTPHandler(BaseHTTPRequestHandler):
def do_GET(self):
print("connect from ",self.client_address)
print(self.headers)
length = self.headers['Content-Length']
print(length)
addr = ('',21567)
server = HTTPServer(addr,MyHTTPHandler)
server.serve_forever()
答案 0 :(得分:1)
在GET请求中拥有请求正文并不是一个好习惯,如下所述:HTTP GET with request body
相反,您可以将方法更改为POST 并在那里查看from itertools import chain, combinations
def range_powerset(n: int):
s = list(range(n))
return chain.from_iterable(combinations(s, r) for r in range(len(s)+1))
def indicator(A: Iterable, B: Iterable):
return tuple(i in A for i in B)
def fill2(n: int):
return (indicator(i, range(n)) for i in range_powerset(n))
文档:https://docs.python.org/2/library/basehttpserver.html
特别是这部分:
的RFile
包含一个输入流,位于可选输入数据的开头。