Tôi đã viết một máy khách HTTP và máy chủ đơn giản trong python để thử nghiệm. Đoạn mã đầu tiên dưới đây cho thấy cách tôi gửi một yêu cầu HTTP nhận được với một tham số cụ thể là imsi. Trong đoạn mã thứ hai, tôi hiển thị việc thực hiện hàm doGet của mình ở phía máy chủ. Câu hỏi của tôi là làm thế nào tôi có thể trích xuất các tham số imsi trong mã máy chủ và gửi một phản ứng lại cho khách hàng để báo hiệu cho khách hàng rằng imsi là hợp lệ. Cảm ơn.Xử lý tham số đầu vào HTTP GET ở phía máy chủ trong python
P .: Tôi đã xác minh rằng khách hàng gửi yêu cầu thành công.
đoạn mã KHÁCH HÀNG
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()
đoạn mã MÁY CHỦ
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)
bạn không nhận được 'args' được gửi cùng với yêu cầu' GET' chưa? – aayoubi
Liên quan: https://stackoverflow.com/questions/2490162/parse-http-get-and-post-parameters-from-basehttphandler –