我在python中有一个服务器来监听GET
个请求:
host = '127.0.0.1' # listen to localhost
port = 8001
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind((host, port))
sock.listen(5) # don't queue up any requests
while True:
csock, caddr = sock.accept()
print "Connection from: " + repr(caddr)
req = csock.recv(1024)
print req
我收到以下请求:
Connection from: ('127.0.0.1', 42311)
GET /?categories[]=100&categories[]=200 HTTP/1.1
Host: localhost:8001
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
请求的格式为http://localhost:8000/?categories[]=100&categories[]=200
,我想获取已传递的类别。
我应该编写正则表达式来解析req
,还是可以将'categories'参数作为req
的属性参数?
答案 0 :(得分:2)
这取决于您打算如何使用这些请求。如果您想根据类别回复HTML页面(或类似页面),您应该看看像Flask这样的框架。如果您只想解析标题,请查看this。这是一个关于如何解析HTTP头的线程。