Python-python中BaseHTTPRequestHandler读取POST数据一定要指定长度?

Web程序数据库 Web程序数据库 主题:1214 回复:2505

Python-python中BaseHTTPRequestHandler读取POST数据一定要指定长度?

归属感 发布于 2017-06-03 字数 241 浏览 1211 回复 1

使用python写一个简单的HTTP服务器,使用http.server,handler用BaseHTTPRequestHandler。
浏览器向服务器POST数据时,在do_POST函数中,程序会阻塞在self.rfile.read()上,但若从HEADER中读取数据长度,然后read时指定长度就没问题,这是为什么?

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(1

夜无邪 2017-10-23 1 楼

若不指定content-length, 会一直读取整个输入流直至TCP连接断开.
若指定读取content-length, 则会在读取完数据后结束.

我认为应该是因为BaseHTTPRequestHandler里并没有去仔细处理POST报文读取的各种情况