2011-05-19 8 views
8

¿Cómo puedo agregar el encabezado de reintento en cherrypy?python cherrypy - cómo agregar el encabezado

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()) 

Este reintento encabezado dt funciona.

+2

Sólo una pequeña sugerencia: El nivel de sangría común en Python es de 4 espacios - es posible que desee seguirlo en lugar de utilizar 2 espacios. – ThiefMaster

+3

bien gracias. ¿me pueden ayudar a obtener respuesta a mi pregunta? – sam

Respuesta

18

Cuando establece un código de estado al elevar HTTPError, los encabezados en cherrypy.response.headers se ignoran. Establecer el estado HTTP mediante el establecimiento de cherrypy.response.status lugar:

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

muchas gracias por tan valiosa información. – sam

+0

¡De nada! Si la respuesta resolvió su problema, considere aceptarlo para mostrar a otros que su pregunta ha sido respondida y para dar crédito por la respuesta: http://meta.stackexchange.com/questions/5234/how-does-accepting-an- answer-work –

+0

haz clic en el enlace. :) – sam