2011-05-19 84 views
8

如何在cherrypy中添加重试标题?python cherrypy - 如何添加标题

import cherrypy 
    import os 

    class Root: 

    def index(self): 
     cherrypy.response.headers['Retry-After'] = 60 
     cherrypy.request.headers["Age"]= 20 
     cherrypy.config.update({'Retry-After': '60'}) 

     raise cherrypy.HTTPError(503, 'Service Unavailable') 
    index.exposed = True 

    cherrypy.quickstart(Root()) 

此retry-header dt起作用。

+2

只是一个小建议:在Python中常见的缩进级别为4位 - 你可能要遵循它,而不是使用2个空格。 – ThiefMaster 2011-05-19 06:11:39

+3

好的谢谢。你能帮我解答我的问题吗? – sam 2011-05-19 06:16:06

回答

18

当您通过提高HTTPError来设置状态代码时,cherrypy.response.headers中的标题将被忽略。通过设置cherrypy.response.status,而不是设置HTTP状态:

import cherrypy 

class Root: 
    def index(self): 
     cherrypy.response.headers['Retry-After'] = 60 
     cherrypy.response.status = 503 
     # Feel free to return a better error page than the following 
     return "<h1>Service Unavailable</h1>" 
    index.exposed = True 

cherrypy.quickstart(Root()) 
+0

嘿,非常感谢这样宝贵的信息。 – sam 2011-05-19 06:39:45

+0

不客气!如果答案解决了您的问题,请考虑接受它以向其他人展示您的问题已得到解答并为答案提供信用:http://meta.stackexchange.com/questions/5234/how-does-accepting-an- answer-work – 2011-05-19 06:47:24

+0

点击链接。 :) – sam 2011-05-19 08:33:47