gpt4 book ai didi

python - BaseHTTPServer,只接收一次我的变量发布

转载 作者:太空宇宙 更新时间:2023-11-04 03:35:19 26 4
gpt4 key购买 nike

您好,我有这个代码用于我的变量发布,我希望它始终监听和接收发布请求,工作正常,但在接收到第一个变量后,脚本运行但不再获得发布变量。

只能正常运行一次,然后必须重新启动 python 脚本。

import BaseHTTPServer
import urlparse
import os

HOST_NAME = ''
PORT_NUMBER=8000

postVars = ''

class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler):

def do_POST(s):
global postVars
s.send_response(200)
s.end_headers()
varLen = int(s.headers['Content-Length'])
postVars = s.rfile.read(varLen)
#print postVars

server_class = BaseHTTPServer.HTTPServer
httpd = server_class((HOST_NAME, PORT_NUMBER), MyHandler)

try:
httpd.handle_request()
except KeyboardInterrupt:
pass

#print postVars

qs = dict( (k, v if len(v)>1 else v[0] )
for k, v in urlparse.parse_qs(postVars).iteritems() )
#print qs

pass = qs['pass']
domain = qs['domain']
user = qs['user']

os.system("./createuser.sh %s %s %s" % (pass,user,domain))
httpd.serve_forever()

谢谢大家

最佳答案

错误在脚本的末尾。您为 vars 取了一些名字,但取了另一个名字。

改变这个

pase = qs['pass']
dominio = qs['domain']
usuario = qs['user']

os.system("./createuser.sh %s %s %s" % (pass,user,domain))
httpd.serve_forever()

为此

passwd = qs['pass']
domain = qs['domain']
username = qs['user']

os.system("./createuser.sh %s %s %s" % (passwd, username, domain))
httpd.serve_forever()

只是打字错误:-)

关于python - BaseHTTPServer,只接收一次我的变量发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29308299/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com