This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author drlazor8
Recipients drlazor8
Date 2021-02-26.17:02:19
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1614358939.96.0.184711772416.issue43330@roundup.psfhosted.org>
In-reply-to
Content
Hello,

There is a backward incompatibility between xmlrpc.client and xmlrpclib in server classes about how the URI is parsed and used to connect to the remote server. While py2's xmlrpclib use the path, query and fragment parts of the URI request the server, py3's xmlrpc.client solely uses the path and discard both the query and the fragment parts.

In the ProxyServer init method, py2 xmlrpclib does the following to extract the URI:

    def __init__(self, uri, transport=None, encoding=None, verbose=0,
                 allow_none=0, use_datetime=0, context=None):
        import urllib
        type, uri = urllib.splittype(uri)
        self.__host, self.__handler = urllib.splithost(uri)
        if not self.__handler:
            self.__handler = "/RPC2"

While in ProxyServer init method, py3 xmlrpc.client does the following:

    def __init__(self, uri, transport=None, encoding=None, verbose=False,
                 allow_none=False, use_datetime=False, use_builtin_types=False,
                 *, headers=(), context=None):
        p = urllib.parse.urlparse(uri)
        self.__host = p.netloc
        self.__handler = p.path or "/RPC2"

A Pull Request is coming shortly
History
Date User Action Args
2021-02-26 17:02:19drlazor8setrecipients: + drlazor8
2021-02-26 17:02:19drlazor8setmessageid: <1614358939.96.0.184711772416.issue43330@roundup.psfhosted.org>
2021-02-26 17:02:19drlazor8linkissue43330 messages
2021-02-26 17:02:19drlazor8create