Ticket #2489: HttpResponse_headers.patch

File HttpResponse_headers.patch, 1.6 KB (added by Alex Dedul, 9 years ago)
  • __init__.py

     
    166166        else:
    167167            self._iterator = [content]
    168168            self._is_string = True
    169         self.headers = {'Content-Type': mimetype}
     169        self._headers = {'Content-Type': mimetype}
    170170        self.cookies = SimpleCookie()
    171171        self.status_code = 200
    172172
     
    177177            + '\n\n' + self.content
    178178
    179179    def __setitem__(self, header, value):
    180         self.headers[header] = value
     180        self._headers[header] = value
    181181
    182182    def __delitem__(self, header):
    183183        try:
    184             del self.headers[header]
     184            del self._headers[header]
    185185        except KeyError:
    186186            pass
    187187
    188188    def __getitem__(self, header):
    189         return self.headers[header]
     189        value = self._headers[header]
     190        if isinstance(value, unicode):
     191            value = value.encode(self._charset)
    190192
     193        return value
     194
     195    def _get_headers(self):
     196        headers = {}
     197        for key, value in self._headers.items():
     198            if isinstance(value, unicode):
     199                headers[key] = value.encode(self._charset)
     200            else:
     201                headers[key] = value
     202
     203        return headers
     204
     205    headers = property(_get_headers)
     206
    191207    def has_header(self, header):
    192208        "Case-insensitive check for a header"
    193209        header = header.lower()
    194         for key in self.headers.keys():
     210        for key in self._headers.keys():
    195211            if key.lower() == header:
    196212                return True
    197213        return False
Back to Top