SUDS Python соединение - PullRequest
       2

SUDS Python соединение

0 голосов
/ 27 октября 2011

я пытаюсь собрать клиент для веб-сервиса на python с помощью suds. я использовал учебник на этом сайте: http://www.jansipke.nl/python-soap-client-with-suds. Он работает с моим собственным написанным Webservice и WSDL, но не с файлом wsdl, который я получил. Файл wsdl работает в soapUI, я могу отправлять запросы и получать ответ. Так что проблема, я думаю, в том, как suds разбирает файл wsdl. Я получаю следующую ошибку:

urllib2.URLError: <urlopen error [Errno -2] Name or service not known>

Есть идеи, как это исправить? Если вам нужна дополнительная информация, пожалуйста, спросите. Спасибо!

Ответы [ 2 ]

3 голосов
/ 01 ноября 2011

Ошибка, которую вы нам сообщили, означает, что URL, который вы используете для доступа к WSDL, неверен. Не могли бы вы показать нам немного больше своего кода? например, клиентская установка и URL-адрес WSDL. это может позволить другим реально помочь вам.

Олли

1 голос
/ 30 января 2017
# SUDS is primarily built for Python 2.6/7 (Lightweight SOAP client)
# SUDS does not work properly with other version, absolutely no support for 3.x
# Test your code with Python 2.7.12 (I am using)

from suds.client import Client
from suds.sax.text import Raw

# Use your tested URL same format with '?wsdl', Check once in SOAP-UI, below is dummy
# Make sure to use same Method name in below function 'client.service.MethodName'
url = 'http://localhost:8080/your/path/MethodName?wsdl'

#Use your Request XML, below is dummy, format xml=Raw('xml_text')
xml = Raw('<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:diag=" </soapenv:Body></soapenv:Envelope>') 

def GetResCode(url, xml):
    client = Client(url)
    xml_response = (client.service.MethodName(__inject={'msg':xml}))
    return xml_response

print(GetResCode(url,xml))
...