import re
def deserialize_headers(header_string):
"""
Deserializes a string of response headers into a dictionary.
Handles multiple headers separated by newlines or semicolons.
"""
headers = {}
if not header_string:
return headers
header_list = re.split(r'\n|;', header_string) # Split by newline or semicolon
for header in header_list:
header = header.strip()
if not header:
continue
if ' ' in header: # Handle headers with key-value separated by space
try:
key, value = header.split(' ', 1) #split only once
headers[key] = value
except ValueError:
headers[header] = "" #handle cases where split fails
else:
headers[header] = "" # handle cases where there is only a key
return headers
if __name__ == '__main__':
# Example Usage:
header_string = """
Content-Type: application/json
Authorization: Bearer <token>
X-Custom-Header: some_value; another_value
"""
deserialized_headers = deserialize_headers(header_string)
print(deserialized_headers)
header_string2 = "Content-Type: text/plain\nUser-Agent: MyAgent"
deserialized_headers2 = deserialize_headers(header_string2)
print(deserialized_headers2)
header_string3 = "Header1 Header2"
deserialized_headers3 = deserialize_headers(header_string3)
print(deserialized_headers3)
Add your comment