获取url侦听get请求的参数

时间:2015-06-26 17:50:05

标签: python sockets get

我在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的属性参数?

1 个答案:

答案 0 :(得分:2)

这取决于您打算如何使用这些请求。如果您想根据类别回复HTML页面(或类似页面),您应该看看像Flask这样的框架。如果您只想解析标题,请查看this。这是一个关于如何解析HTTP头的线程。