mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-08 16:53:23 +00:00
46 lines
1014 B
Python
46 lines
1014 B
Python
import six
|
|
from six import BytesIO
|
|
from six.moves.http_client import HTTPMessage
|
|
try:
|
|
import http.client
|
|
except ImportError:
|
|
pass
|
|
|
|
|
|
"""
|
|
The python3 http.client api moved some stuff around, so this is an abstraction
|
|
layer that tries to cope with this move.
|
|
"""
|
|
|
|
|
|
def get_header(message, name):
|
|
if six.PY3:
|
|
return message.getallmatchingheaders(name)
|
|
else:
|
|
return message.getheader(name)
|
|
|
|
|
|
def get_header_items(message):
|
|
if six.PY3:
|
|
return dict(message._headers).items()
|
|
else:
|
|
return message.dict.items()
|
|
|
|
|
|
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
|
|
|
|
|
|
def get_httpmessage(headers):
|
|
if six.PY3:
|
|
return http.client.parse_headers(BytesIO(headers))
|
|
msg = HTTPMessage(BytesIO(headers))
|
|
msg.fp.seek(0)
|
|
msg.readheaders()
|
|
return msg
|