我正在使用google appening,这是CGI环境。我想阻止一些请求,我甚至没有响应甚至没有http状态代码。另外,我想关闭连接。我可以这样做吗?
更新
我决定使用pyfunc所说的,使用204状态,但是如何在GAE CGI环境中执行此操作而不使用任何web框架。
更新2:
非常感谢,但是......我真的需要一种CGI方式,而不是WSGI方式。请参阅我的代码中的评论。
def main()
#Block requests at once.
if (settings.BLOCK_DOWNLOAD and os.environ.get('HTTP_RANGE')) \
or (settings.BLOCK_EXTENSION.match(os.environ['PATH_INFO'])):
#TODO: return 204 response in CGI way.
#I really do not need construct a WSGIApplication and then response a status code.
return
application = webapp.WSGIApplication([
(r'/', MainHandler),
#...
], debug=True)
run_wsgi_app(application)
if __name__ == '__main__':
main()
答案 0 :(得分:4)
HTTP状态代码在响应中很重要
[编辑:更新的问题]
您可以查看许多使用GAE标记的SO示例:
据我了解,您将使用webapp框架。加强它的使用。
检查如何在
设置响应对象状态代码以下是裸骨服务器的示例,其响应204无内容。我没有对它进行过测试,但它也是类似的。
import wsgiref.handlers
from google.appengine.ext import webapp
class MainHandler(webapp.RequestHandler):
def get(self):
return self.response.set_status(204)
def main():
application = webapp.WSGIApplication([('/', MainHandler)], debug=True)
wsgi.handlers.CGIHandler().run(application)
if __name__ == '__main__':
main()
请参阅完整的申请表: