1
2
3
4
5
6 from restkit.errors import AlreadyRead
7
9 """ Http Response object returned by HttpConnction"""
10
11 charset = "utf8"
12 unicode_errors = 'strict'
13
14 - def __init__(self, response, final_url):
27
29 try:
30 return getattr(self, key)
31 except AttributeError:
32 pass
33 return self.headers[key.lower()]
34
36 return (key.lower() in self.headers)
37
39 for item in list(self.headers.items()):
40 yield item
41
42 - def body_string(self, charset=None, unicode_errors="strict"):
43 """ return body string, by default in bytestring """
44 if self.closed or self.response.body.closed:
45 raise AlreadyRead("The response have already been read")
46 body = self.response.body.read()
47 if charset is not None:
48 try:
49 body = body.decode(charset, unicode_errors)
50 except UnicodeDecodeError:
51 pass
52 self.close()
53 return body
54
55 - def body_stream(self):
56 """ return full body stream """
57 if self.closed or self.response.body.closed:
58 raise AlreadyRead("The response have already been read")
59 return self.response.body
60
65