Basit bir HTTP istemcisi ve python'da sunucu için sunucuya yazdım. Aşağıdaki ilk kod parçacığı, bir imi ile bir HTTP alma isteğini nasıl gönderdiğimi gösterir. İkinci kod snippet'inde sunucu tarafındaki doGet işlev uygulamamı gösteriyorum. Sorum şu ki, sunucu kodundaki imsi parametresini nasıl çıkarabileceğim ve müşteriye imsi'nin geçerli olduğunu bildirmek için müşteriye bir cevap gönderebiliyorum. Teşekkürler.Python'da sunucu tarafında HTTP GET giriş parametresi işleniyor
P.S .: İstemcinin isteği başarıyla gönderdiği doğrulandı.
MÜŞTERİ kod parçacığı
params = urllib.urlencode({'imsi': str(imsi)})
conn = httplib.HTTPConnection(host + ':' + str(port))
#conn.set_debuglevel(1)
conn.request("GET", "/index.htm", 'imsi=' + str(imsi))
r = conn.getresponse()
Sen urlparse kullanarak bir GET isteğinin sorgu ayrıştırabilir
import sys, string,cStringIO, cgi,time,datetime
from os import curdir, sep
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
class MyHandler(BaseHTTPRequestHandler):
# I WANT TO EXTRACT imsi parameter here and send a success response to
# back to the client.
def do_GET(self):
try:
if self.path.endswith(".html"):
#self.path has /index.htm
f = open(curdir + sep + self.path)
self.send_response(200)
self.send_header('Content-type','text/html')
self.end_headers()
self.wfile.write("<h1>Device Static Content</h1>")
self.wfile.write(f.read())
f.close()
return
if self.path.endswith(".esp"): #our dynamic content
self.send_response(200)
self.send_header('Content-type','text/html')
self.end_headers()
self.wfile.write("<h1>Dynamic Dynamic Content</h1>")
self.wfile.write("Today is the " + str(time.localtime()[7]))
self.wfile.write(" day in the year " + str(time.localtime()[0]))
return
# The root
self.send_response(200)
self.send_header('Content-type','text/html')
self.end_headers()
lst = list(sys.argv[1])
n = lst[len(lst) - 1]
now = datetime.datetime.now()
output = cStringIO.StringIO()
output.write("<html><head>")
output.write("<style type=\"text/css\">")
output.write("h1 {color:blue;}")
output.write("h2 {color:red;}")
output.write("</style>")
output.write("<h1>Device #" + n + " Root Content</h1>")
output.write("<h2>Device Addr: " + sys.argv[1] + ":" + sys.argv[2] + "</h1>")
output.write("<h2>Device Time: " + now.strftime("%Y-%m-%d %H:%M:%S") + "</h2>")
output.write("</body>")
output.write("</html>")
self.wfile.write(output.getvalue())
return
except IOError:
self.send_error(404,'File Not Found: %s' % self.path)
"GET" isteği ile gönderilen 'args' almıyor musunuz? – aayoubi
İlgili: https://stackoverflow.com/questions/2490162/parse-http-get-and-post-parameters-from-basehttphandler –