#1492: allow overriding BaseHTTPServer's content type for error messages.
This commit is contained in:
parent
5224d28d38
commit
1647923bbf
|
@ -122,6 +122,15 @@ to a handler. Code to create and run the server looks like this::
|
|||
class variable.
|
||||
|
||||
|
||||
.. attribute:: BaseHTTPRequestHandler.error_content_type
|
||||
|
||||
Specifies the Content-Type HTTP header of error responses sent to the client.
|
||||
The default value is ``'text/html'``.
|
||||
|
||||
.. versionadded:: 2.6
|
||||
Previously, the content type was always ``'text/html'``.
|
||||
|
||||
|
||||
.. attribute:: BaseHTTPRequestHandler.protocol_version
|
||||
|
||||
This specifies the HTTP protocol version used in responses. If set to
|
||||
|
|
|
@ -76,7 +76,7 @@ import socket # For gethostbyaddr()
|
|||
import mimetools
|
||||
import SocketServer
|
||||
|
||||
# Default error message
|
||||
# Default error message template
|
||||
DEFAULT_ERROR_MESSAGE = """\
|
||||
<head>
|
||||
<title>Error response</title>
|
||||
|
@ -89,6 +89,8 @@ DEFAULT_ERROR_MESSAGE = """\
|
|||
</body>
|
||||
"""
|
||||
|
||||
DEFAULT_ERROR_CONTENT_TYPE = "text/html"
|
||||
|
||||
def _quote_html(html):
|
||||
return html.replace("&", "&").replace("<", "<").replace(">", ">")
|
||||
|
||||
|
@ -342,13 +344,14 @@ class BaseHTTPRequestHandler(SocketServer.StreamRequestHandler):
|
|||
content = (self.error_message_format %
|
||||
{'code': code, 'message': _quote_html(message), 'explain': explain})
|
||||
self.send_response(code, message)
|
||||
self.send_header("Content-Type", "text/html")
|
||||
self.send_header("Content-Type", self.error_content_type)
|
||||
self.send_header('Connection', 'close')
|
||||
self.end_headers()
|
||||
if self.command != 'HEAD' and code >= 200 and code not in (204, 304):
|
||||
self.wfile.write(content)
|
||||
|
||||
error_message_format = DEFAULT_ERROR_MESSAGE
|
||||
error_content_type = DEFAULT_ERROR_CONTENT_TYPE
|
||||
|
||||
def send_response(self, code, message=None):
|
||||
"""Send the response header and log the response code.
|
||||
|
|
Loading…
Reference in New Issue