Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions human_curl/async.py
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,7 @@ def cleanup_pool(self):
opener.close()

self._openers_pool.close()
self._openers_pool = None

def method(self, method, **kwargs):
"""Added request params to data_queue
Expand Down
14 changes: 12 additions & 2 deletions human_curl/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -727,6 +727,12 @@ def json(self):
except ValueError:
return None

def _clean_raw_headers(self, raw_headers):
ret = raw_headers.strip()
ret = ret.replace("\r\nHTTP", "\r\n\r\nHTTP")
ret = ret.replace("\r\n\r\n\r\n", "\r\n\r\n")
return ret

def _parse_headers_raw(self):
"""Parse response headers and save as instance vars
"""
Expand Down Expand Up @@ -763,15 +769,19 @@ def parse_header_block(raw_block):
logger.warn(e)
continue
else:
block_headers.append((version, code, message))
if len(block_headers) > 0:
logger.warn("Status HTTP header already exitst %s, but found one more %s for url %s" %
(block_headers[0], (version, code, message), self.url))
else:
block_headers.append((version, code, message))
else:
# raise ValueError("Wrong header field")
pass
return block_headers

raw_headers = self._headers_output.getvalue()

headers_blocks = raw_headers.strip().split("\r\n\r\n")
headers_blocks = self._clean_raw_headers(raw_headers).split("\r\n\r\n")
for raw_block in headers_blocks:
block = parse_header_block(raw_block)

Expand Down