Python XLMRPC - 'gaierror: [Errno 11001] сбой getaddrinfo' - PullRequest
0 голосов
/ 21 февраля 2019

В настоящее время я пытаюсь отправить запрос XMLRPC на удаленный сервер, но не могу устранить возникающую ошибку.

Мне нужен запрос XMLRPC, чтобы его можно было запустить с использованием прокси-сервера моей компании, поэтому я обратился к документации и попытался реализовать их предложение для решения этой ситуации:

import http.client
import xmlrpc.client

class ProxiedTransport(xmlrpc.client.Transport):

    def set_proxy(self, host, port=None, headers=None):
        self.proxy = host, port
        self.proxy_headers = headers

    def make_connection(self, host):
        connection = http.client.HTTPConnection(*self.proxy)
        connection.set_tunnel(host, headers=self.proxy_headers)
        self._connection = host, connection
        return connection

transport = ProxiedTransport()
transport.set_proxy('http://company.net', port = XXXX)
server = xmlrpc.client.ServerProxy('http://betty.userland.com', transport=transport)
server.system.listMethods()

В приведенном выше примере я ввел фиктивные входные данные в .set_proxy и xmlrpc.client.ServerProxy.

Когда я запускаю этот код или любой другой код XMLRPC из-за прокси-сервера компании, я сталкиваюсь со следующей ошибкой:

Traceback (most recent call last):

  File "<ipython-input-21-94e0b846ed28>", line 1, in <module>
    server.system.listMethods()

  File "C:\Users\XXX\AppData\Local\Continuum\anaconda3\lib\xmlrpc\client.py", line 1112, in __call__
    return self.__send(self.__name, args)

  File "C:\Users\XXX\AppData\Local\Continuum\anaconda3\lib\xmlrpc\client.py", line 1452, in __request
    verbose=self.__verbose

  File "C:\Users\XXX\AppData\Local\Continuum\anaconda3\lib\xmlrpc\client.py", line 1154, in request
    return self.single_request(host, handler, request_body, verbose)

  File "C:\Users\XXX\AppData\Local\Continuum\anaconda3\lib\xmlrpc\client.py", line 1166, in single_request
    http_conn = self.send_request(host, handler, request_body, verbose)

  File "C:\Users\XXX\AppData\Local\Continuum\anaconda3\lib\xmlrpc\client.py", line 1279, in send_request
    self.send_content(connection, request_body)

  File "C:\Users\XXX\AppData\Local\Continuum\anaconda3\lib\xmlrpc\client.py", line 1309, in send_content
    connection.endheaders(request_body)

  File "C:\Users\XXX\AppData\Local\Continuum\anaconda3\lib\http\client.py", line 1224, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)

  File "C:\Users\XXX\AppData\Local\Continuum\anaconda3\lib\http\client.py", line 1016, in _send_output
    self.send(msg)

  File "C:\Users\XXX\AppData\Local\Continuum\anaconda3\lib\http\client.py", line 956, in send
    self.connect()

  File "C:\Users\XXX\AppData\Local\Continuum\anaconda3\lib\http\client.py", line 928, in connect
    (self.host,self.port), self.timeout, self.source_address)

  File "C:\Users\XXX\AppData\Local\Continuum\anaconda3\lib\socket.py", line 707, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):

  File "C:\Users\XXX\AppData\Local\Continuum\anaconda3\lib\socket.py", line 748, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):

gaierror: [Errno 11001] getaddrinfo failed

В документации не содержится справки о том, какрешить эту проблему, из-за которой эту проблему трудно решить.

Из исследования ошибки 'gaierror: [Errno 11001]' в Интернете я обнаружил ряд постов, в которых обсуждается, что это связано с конфигурациями сокетов., но я не понимаю, как изменить их в контексте этого запроса XMLRPC.У кого-нибудь есть предложения относительно того, как исправить / устранить проблему?

...