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.