import socket import urllib.parse HOST = '' PORT = 8000 content = b'''HTTP/1.x 200 OK Content-Type: text/html
Wow, Python Server
''' s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind((HOST, PORT)) while True: s.listen(3) conn, addr = s.accept() request = conn.recv(4096) # print (request) try: method = request.decode().split(' ')[0] except: print ("Unexpected method:", request) if method == 'POST': try: ctype = request.decode().split('Content-Type: ')[1].splitlines()[0] except: print ("Unexpected ctype:", request) # print (ctype) # ctype = ctype[1].splitlines()[0] # src = request.decode().split(' ')[1] body = request.decode().split('\r\n\r\n', 1)[1] try: single = body.split('&',1) sender = single[0].split('=',1) except: print ("Unexpected body:", request) # print (request) #print (request.decode()) #print (request.decode('utf-8')) # print (single) #print (ctype) #print ("----------------------------------------------") if method == 'POST' and ctype == 'application/x-www-form-urlencoded': try: message = single[1].split('=',1) except: print ("Unexpected error:", request) # print (message[1][:-1]) # print (message[1][:-1], bytes) # print (message[1][:-1].encode()) # print ("&&&&&&&&&&&&&&&&&") # m = message[1].replace("b", "").replace("'", "") # print (m) with open('/dev/usb/lp0', 'w', encoding='gbk') as printer: # printer.write('\n'+str(addr)+'\n') printer.write(str(request.decode())+'\n') # printer.write('\n'*2+str(body)+'\n') # printer.write(single[0]+'\n') # printer.write(single[1]+'\n') # printer.write(sender[0]+'\n') m = urllib.parse.unquote(message[1]) #o = str(m).encode('gb2312').decode('latin2') #p = str(m).encode() printer.write('\x1b\x61\x01') printer.write('\x1b\x21\x30') printer.write("您有一条新短信,请查收!"+'\n') printer.write('\x1b\x61\x00') printer.write('\x1b\x21\x00') printer.write('\x1b\x45\x01') printer.write(urllib.parse.unquote(sender[1])+'\n') printer.write('\x1b\x45\x00') #printer.write(urllib.parse.unquote(message[1], encoding="utf-8")+'\n') try: printer.write(m+'\n') except: print ("Error from Printer:", m) #printer.write(p+'\n') #print (sender) #print (message[1]) #print (ctype) #print (urllib.parse.unquote(message[1])+'\n') #print (urllib.parse.unquote(message[1], encoding="utf-8")+'\n') conn.sendall(content) conn.close()