Python 无法在 HTTP 套接字服务器中接收用户数据
Python can't receive user data in HTTP socket server
我无法在 recv() 中获取数据
我想要用户在表单字段中输入的数据
代码:
def recvall(self, conn):
BUFF_SIZE = 4096 # 4 KiB
data = ""
while True:
packet = conn.recv(BUFF_SIZE).decode('utf-8')
data += packet
if len(packet) < BUFF_SIZE:
break
print (data)
输出:
POST /search HTTP/1.1
Host: localhost
Connection: keep-alive
Content-Length: 14
Cache-Control: max-age=0
Origin: http://localhost
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Referer: http://localhost/
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.8
好像少了一行什么的我什么都试过了
我要最后的数据
正如 Steffen 正确观察到的那样,您在 header 序列之后停止阅读。以下代码应该可以工作(注意,未经测试!):
def recvall(self, conn):
BUFF_SIZE = 4096
while True:
packet = conn.recv(BUFF_SIZE)
if not packet:
break
print packet.decode('utf-8')
我无法在 recv() 中获取数据 我想要用户在表单字段中输入的数据
代码:
def recvall(self, conn):
BUFF_SIZE = 4096 # 4 KiB
data = ""
while True:
packet = conn.recv(BUFF_SIZE).decode('utf-8')
data += packet
if len(packet) < BUFF_SIZE:
break
print (data)
输出:
POST /search HTTP/1.1
Host: localhost
Connection: keep-alive
Content-Length: 14
Cache-Control: max-age=0
Origin: http://localhost
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Referer: http://localhost/
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.8
好像少了一行什么的我什么都试过了 我要最后的数据
正如 Steffen 正确观察到的那样,您在 header 序列之后停止阅读。以下代码应该可以工作(注意,未经测试!):
def recvall(self, conn):
BUFF_SIZE = 4096
while True:
packet = conn.recv(BUFF_SIZE)
if not packet:
break
print packet.decode('utf-8')