Передайте маршрут в конструктор клиента suds-community, когда он нужен для загрузки WSDL:

from suds.client import Client

client = Client(
    'https://service.example/soap?wsdl',
    proxy={
        'http': 'http://proxy.example:8080',
        'https': 'http://proxy.example:8080',
    },
)

Ключи сопоставления — это схемы назначения; оба могут указывать на один и тот же HTTP-посредник. Для публичного теста SOAP, допускающего неаутентифицированный публичный посредник, используйте кандидатов из списка HTTP-прокси для этих адресов HTTP-прокси. Импорты и схемы WSDL также могут загружаться во время конструирования. Более поздний set_options может повлиять на дальнейшую работу, но не исправит конструктор, который уже завершился ошибкой.

Поддерживаемый транспортный уровень строит явный urllib ProxyHandler из своего сопоставления. Пустое сопоставление отличается от обнаружения прокси по умолчанию, поэтому экспортированное окружение, работающее в небольшой программе urllib, не обязано управлять Suds.

Используйте сопоставление для фиксированного маршрута. Для системной политики, зависящей от назначения, выберите интеграцию транспорта, которая намеренно её сохраняет. Замена каждого обработчика пустым списком может лишить специализированного поведения аутентификации.

Переданный пользовательский opener должен сам нести нужный маршрут. Установка глобального opener не заменяет существующий частный; настройте транспорт, который этот клиент SOAP действительно использует.

Похожие статьи