Я совершенно потерян в том, что должно быть легкой задачей.SUDS client.service. issue
Я пытаюсь использовать Python с SUDS, чтобы захватить URL-адрес WSDL, создать клиентские объекты, изменить некоторую информацию, а затем опубликовать резервную копию WSDL (или где-либо когда-либо мне рассказывать о ее публикации).
я получаю следующее сообщение об ошибке:
Traceback (most recent call last):
File "./test.py", line 47, in <module>
email_sent = client.service.sendEmail(From, SenderContext, Email)
NameError: name 'client' is not defined
Если я удалить «Попробуйте:» раздел в коде и вставьте код приходят печати для печати объектов, все работает просто отлично. Он захватывает информацию и делает изменения, которые я хочу.
Что я не понимаю, так это то, что объект-клиент создан, и я пытаюсь отправить информацию обратно, но не могу. У кого-нибудь есть опыт работы с XML и Python?
import sys
import logging
import traceback as tb
import suds.metrics as metrics
import unittest
from suds import null, WebFault
from suds.client import Client
def sendTestMail():
url = 'wsdl url at my company'
client = Client(url)
SenderContext = client.factory.create('senderContext')
SenderContext.registeredSenderId = 'Endurance'
SenderContext.mailType = 'TRANSACTIONAL_OTHER'
SenderContext.subSenderId = 12345
From = client.factory.create('emailAddressBean')
From.address = '[email protected]'
From.valid = 'TRUE'
Email = client.factory.create('email')
Email.recipients = '[email protected]'
Email.ccRecipients = ''
Email.bccRecipients = ''
Email.agencyId = ''
Email.content = 'This is a test of sending'
Email.contentType = 'text/plain'
Email.description = ''
#Email.from = From
Email.fromName = 'An Employee'
Email.subject = 'This is a test'
Email.mrrId = ''
Email.templateId = ''
try:
email_sent = client.service.sendEmail(From, SenderContext, Email)
except WebFault, e:
print e
if __name__ == '__main__':
errors = 0
sendTestMail()
print '\nFinished: errors=%d' % errors