[issue24032] urlparse.urljoin does not add query part
Changes by R. David Murray rdmur...@bitdance.com: -- resolution: - not a bug stage: - resolved status: open - closed ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24032 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24032] urlparse.urljoin does not add query part
Martin Panter added the comment: This is not how URL joining is meant to work. For example if the base URL “. . ./foo.php?param=10” produces a HTML file with a relative link to “bar.php”, the parent path should be joined on, but not the query part. I understand the Python implementation is meant to more or less follow the RFC. See the second example at https://tools.ietf.org/html/rfc3986.html#section-5.4 which is the same form as your case, and shows the query part being removed: Base URI: http://a/b/c/d;p?q Relative reference: g Target URL: http://a/b/c/g; There are occasionally cases where keeping the base query, or even joining two sets of query parameters together, is desirable. But these cases are rare and urljoin() is not meant to handle them. -- nosy: +vadmium ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24032 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24032] urlparse.urljoin does not add query part
New submission from albertsmuktupavels: From documentation: Construct a full (“absolute”) URL by combining a “base URL” (base) with another URL (url). Informally, this uses components of the base URL, in particular the addressing scheme, the network location and (part of) the path, to provide missing components in the relative URL. base = http://www.example.com/example/foo.php?param=10 url = bar.php I am expecting this result: http://www.example.com/example/bar.php?param=10 But real result is: http://www.example.com/example/bar.php This should be easy fixable. Right now query= bquery is done only in one case - when path and params are empty. I think that if not query: query = bquery should be moved before query might be used for first time. that means above code should be right after these lines: if scheme != bscheme or scheme not in uses_relative: return url -- messages: 241827 nosy: albertsmuktupavels priority: normal severity: normal status: open title: urlparse.urljoin does not add query part type: behavior versions: Python 2.7 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24032 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com