Python/SUDS を使用して Web サービスに接続しようとしています。
1 つのファイルに次のコードがあり、正常に接続でき、応答を受け取ります。
class Suds_Connect:
def __init__(self, url, q_user, q_passwd):
logging.basicConfig(level=logging.INFO)
logging.getLogger('suds.client').setLevel(logging.DEBUG)
try:
# fix broken wsdl
# add <s:import namespace="http://www.w3.org/2001/XMLSchema"/> to the wsdl
imp = Import('http://www.w3.org/2001/XMLSchema',
location='http://www.w3.org/2001/XMLSchema.xsd')
wsdl_url = url
self.client = Client(wsdl_url, doctor=ImportDoctor(imp))
t = HttpAuthenticated()
security = Security()
token = UsernameToken(q_user,q_passwd)
security.tokens.append(token)
self.client.set_options(wsse=security)
except Exception, e:
print "Unexpected error:", sys.exc_info()[0]
print str(e)
sys.exit()
def CallWebMethod():
try:
print ' SUDS Client'
print self.client
Person= self.client.factory.create('ns0:Person')
Person.name= 'bob'
Person.age= '34'
Person.address= '44, river lane'
print self.client.service.AddPerson(Person)
except WebFault, f:
print str(f.fault)
except Exception, e:
print str(e)
if __name__ == '__main__':
errors = 0
sudsClient = Suds_Connect('url','user','password')
sudsClient.CallWebMethod()
print '\nFinished:'
ボタン クリック イベントから呼び出される Python クライアント アプリでこのコードを使用したいと考えています。これを実装しようとしましたが、クライアントを印刷できましたが、Web サービス呼び出し ( print self.client.service.AddPerson(Person)
) を行うと、次のエラーが発生します。
unsupported operand type(s) for +: 'NoneType' and 'str'
このエラーを修正するにはどうすればよいですか?