TypeError в клиенте XMLRPC - PullRequest
1 голос
/ 15 мая 2019

Я пытаюсь использовать сервисы из веб-сервиса XMLRPC, используя python. Удаленный веб-сервер требует аутентификации и проверки SSL. Для этого я реализовал клиент xmlrpc, используя xmlrpc.client следующим образом:

class HTTPSDigestAuthTransport:

    def request(self, host, handler, request_body, verbose=0):
        api_url = Setup.get_api_url()
        username = Setup.get_api_username()
        password = Setup.get_api_password()
        h = httplib2.Http()
        if verbose:
            h.debuglevel = 1
        h.add_credentials(username, password)
        h.disable_ssl_certificate_validation = True
        resp, content = h.request("https://" + api_url, "POST", body=request_body,
                              headers={'content-type': 'text/xml'})
        if resp.status != 200:
            raise ProtocolError("https://" + api_url, resp.status, resp.reason, None)
        p, u = getparser(0)
        p.feed(content)


# transport factory instance
transport = HTTPSDigestAuthTransport()

# url composition
url = "https://" + Setup.get_api_username() + ":" + Setup.get_api_password() + "@" + Setup.get_api_url()

# create the proxy
proxy = xmlrpc.client.ServerProxy(url, transport)
res = proxy.do_some_work()

Проблема в том, что инструкция res = proxy.do_some_work() генерирует эту ошибку:

File "/usr/lib/python3.6/xmlrpc/client.py", line 1112, in __call__
return self.__send(self.__name, args)
File "/usr/lib/python3.6/xmlrpc/client.py", line 1455, in __request
if len(response) == 1:

TypeError: объект типа 'NoneType' не имеет len ()

Является ли object of type 'NoneType' has no len() форматом ответа? Какое может быть решение?

...