diff --git a/vcr/stubs/__init__.py b/vcr/stubs/__init__.py index 6cc1bfa..d49e78b 100644 --- a/vcr/stubs/__init__.py +++ b/vcr/stubs/__init__.py @@ -55,9 +55,9 @@ def parse_headers(header_list): def serialize_headers(response): out = {} - for key in response.msg.keys(): + for key, values in compat.get_headers(response): out.setdefault(key, []) - out[key].extend(response.msg.getheaders(key)) + out[key].extend(values) return out diff --git a/vcr/stubs/compat.py b/vcr/stubs/compat.py index 3b383e5..6b65ca0 100644 --- a/vcr/stubs/compat.py +++ b/vcr/stubs/compat.py @@ -28,12 +28,11 @@ def get_header_items(message): def get_headers(response): - if six.PY3: - header_list = response.msg._headers - return [b': '.join((k.encode('utf-8'), v.encode('utf-8'))) + b'\r\n' - for k, v in header_list] - else: - return response.msg.headers + for key in response.msg.keys(): + if six.PY3: + yield key, response.msg.get_all(key) + else: + yield key, response.msg.getheaders(key) def get_httpmessage(headers):