From f3159ed4f619124ab4b47c4e0f06f96daed762ce Mon Sep 17 00:00:00 2001 From: Rhys Elsmore Date: Tue, 21 Aug 2012 00:47:19 +1000 Subject: [PATCH] Added in a link handler as per issue #711 --- requests/utils.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/requests/utils.py b/requests/utils.py index 9b8ea21d..5b8c88d9 100644 --- a/requests/utils.py +++ b/requests/utils.py @@ -518,3 +518,36 @@ def default_user_agent(): '%s/%s' % (_implementation, _implementation_version), '%s/%s' % (platform.system(), platform.release()), ]) + +def parse_header_links(value): + """Return a dict of parsed link headers proxies. + + i.e. Link: ; rel=front; type="image/jpeg",; rel=back;type="image/jpeg" + + """ + + links = [] + + replace_chars = " '\"" + + for val in value.split(","): + try: + url, params = val.split(";", 1) + except ValueError: + url, params = val, '' + + link = {} + + link["url"] = url.strip("<> '\"") + + for param in params.split(";"): + try: + key,value = param.split("=") + except ValueError: + break + + link[key.strip(replace_chars)] = value.strip(replace_chars) + + links.append(link) + + return links