Processing HTTP GET input parameter on server side in python Processing HTTP GET input parameter on server side in python python python

Processing HTTP GET input parameter on server side in python


You can parse the query of a GET request using urlparse, then split the query string.

from urlparse import urlparsequery = urlparse(self.path).queryquery_components = dict(qc.split("=") for qc in query.split("&"))imsi = query_components["imsi"]# query_components = { "imsi" : "Hello" }# Or use the parse_qs methodfrom urlparse import urlparse, parse_qsquery_components = parse_qs(urlparse(self.path).query)imsi = query_components["imsi"] # query_components = { "imsi" : ["Hello"] }

You can confirm this by using

 curl http://your.host/?imsi=Hello


BaseHTTPServer is a pretty low-level server. Generally you want to use a real web framework that does this kind of grunt work for you, but since you asked...

First import a url parsing library. In Python 2,x it's urlparse. (In Python3, you'd use urllib.parse)

import urlparse

Then, in your do_get method, parse the query string.

imsi = urlparse.parse_qs(urlparse.urlparse(self.path).query).get('imsi', None)print imsi  # Prints None or the string value of imsi

Also, you could be using urllib in your client code and it would probably be a lot easier.


cgi module contains FieldStorage class which is supposed to be used in CGI context, but seems to be easily used in your context as well.