Я ищу простой способ программно вызывать вызов SOAP/RPC через Python. Что-то вроде:
method_to_invoke, args = parse_user_input()
outbound_xml = library.call_remote_method(method_to_invoke, args)
result = requests.post(... data=outbound_xml)
Я знаю, что несколько библиотек Python, поддерживающих вызовы SOAP/RPC; однако все они делают "волшебство" и допускают такие вещи, как:
result = client.service.getPercentBodyFat('jeff', 68, 170)
(предыдущий пример взят из suds documentation, но основные принципы одинаковы). Это предполагает, что я знаю имя метода раньше времени и не могу определить его во время выполнения.
В поисках решений они либо больше не поддерживаются, либо пытаются сделать слишком много "магии". Например, см. этот сложный soution или это решение, которое в основном "Создайте свой собственный XML и отправьте его над".
Есть ли какая-нибудь библиотека, которая может построить для меня "исходящий" XML без необходимости проходить обручи? У меня уже есть HTTP-сервер, который получит входящий RPC и захочет использовать requests
для правильной обработки таких вещей, как проверка сертификата SSL.