这就是我在 Python 3 中从 CGI (A) URL、(B) GET 参数和 (C) POST 数据中捕获的方式:
==================================================== =====
导入系统、操作系统、io
捕获网址
myDomainSelf = os.environ.get('SERVER_NAME')
myPathSelf = os.environ.get('PATH_INFO')
myURLSelf = myDomainSelf + myPathSelf
捕获获取数据
myQuerySelf = os.environ.get('QUERY_STRING')
捕获发布数据
myTotalBytesStr=(os.environ.get('HTTP_CONTENT_LENGTH'))
如果(myTotalBytesStr == 无):
myJSONStr = '{"error": {"value": true, "message": "No (post) data received"}}'
别的:
myTotalBytes=int(os.environ.get('HTTP_CONTENT_LENGTH'))
myPostDataRaw = io.open(sys.stdin.fileno(),"rb").read(myTotalBytes)
myPostData = myPostDataRaw.decode("utf-8")
将RAW写入文件
mySpy = "myURLSelf: [" + str(myURLSelf) + "]\n"
mySpy = mySpy + "myQuerySelf: [" + str(myQuerySelf) + "]\n"
mySpy = mySpy + "myPostData: [" + str(myPostData) + "]\n"
您需要在此处定义自己的 myPath
我的文件名 = “间谍.txt”
我的文件路径 = 我的路径 + "\" + 我的文件名
我的文件 = 打开(我的文件路径,“w”)
myFile.write(mySpy)
我的文件.close()
==================================================== =====
以下是一些其他有用的 CGI 环境变量:
AUTH_TYPE
CONTENT_LENGTH
内容类型
GATEWAY_INTERFACE
PATH_INFO
PATH_TRANSLATED
请求参数
远程地址
远程主机
REMOTE_IDENT
REMOTE_USER
REQUEST_METHOD
SCRIPT_NAME
服务器名称
服务器端口
SERVER_PROTOCOL
服务器软件