diff options
| author | Rhys Elsmore <rhys@elsmore.id.au> | 2012-08-21 00:47:19 +1000 |
|---|---|---|
| committer | Rhys Elsmore <rhys@elsmore.id.au> | 2012-08-21 00:47:19 +1000 |
| commit | f3159ed4f619124ab4b47c4e0f06f96daed762ce (patch) | |
| tree | a866ac16360ee0a2c06c3610b6016fc471f7d02c /requests/utils.py | |
| parent | 2e71497e10dd372040b5b44c75b99a07159e7ce4 (diff) | |
| download | python-requests-f3159ed4f619124ab4b47c4e0f06f96daed762ce.tar.gz | |
Added in a link handler as per issue #711
Diffstat (limited to 'requests/utils.py')
| -rw-r--r-- | requests/utils.py | 33 |
1 files changed, 33 insertions, 0 deletions
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: <http:/.../front.jpeg>; rel=front; type="image/jpeg",<http://.../back.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 |
