Python+;suds:xsd_base64二进制类型?
我正在尝试使用Soap API将一些文件附加到Jira。 我有Python2.6,SOAPpy不再工作了,所以我用的是肥皂水。除了附件,一切都很好。。。我不知道如何重写这段代码: 有线索吗? 我不知道如何处理像这样的复杂类型:Python+;suds:xsd_base64二进制类型?,python,soap,jira,suds,Python,Soap,Jira,Suds,我正在尝试使用Soap API将一些文件附加到Jira。 我有Python2.6,SOAPpy不再工作了,所以我用的是肥皂水。除了附件,一切都很好。。。我不知道如何重写这段代码: 有线索吗? 我不知道如何处理像这样的复杂类型: 非常感谢 n、 不知道这是否有帮助,但当我使用python句柄wsdl时,我发现在大多数复杂类型的软件包中明显缺乏支持。最后,我决定使用zsi及其wsdl2py--complexType wsdl_url。这很有效。我的wsdl中有许多复杂类型,其中包含ws
非常感谢
n、 不知道这是否有帮助,但当我使用python句柄wsdl时,我发现在大多数复杂类型的软件包中明显缺乏支持。最后,我决定使用zsi及其wsdl2py--complexType wsdl_url。这很有效。我的wsdl中有许多复杂类型,其中包含wsdl中定义的数组数组。wsdl2py生成3个lib,用于访问wsdl。下面是一个调用方法createSubscribers的示例,该方法接受值数组
import inspect, sys
from PolicyManagementService_client import *
class apiCheckSetup:
def __init__(self, host="10.10.10.23", port="8080", log=None):
"""Setup to run wsdl operations"""
self.loc=PolicyManagementServiceLocator(host, port)
if log:
logfile=log
else:
logfile=sys.stdout
kw = { 'tracefile' : logfile}
self.port=self.loc.getPolicyManagementPort(**kw)
def createSubscribers(self, subList):
req=createSubscribers()
subscriberList=ns0.subscriberDetailsList_Def("subscriberList")
subscriber=ns0.subscriberDetails_Def("subscriber")
subUsers=subscriberList.pyclass()
for element in subList:
sub=subscriber.pyclass()
sub.set_attribute_msisdn(element['msisdn'])
sub.set_attribute_policyID(element['policyID'])
sub.set_attribute_firstName(element['firstName'])
sub.set_attribute_lastName(element['lastName'])
subUsers._subscriber.append(sub)
req._subscribers=subUsers
self.port.createSubscribers(req)
这可以这样称呼:
subList=[{'msisdn' : '+445555555', 'policyID' : pid, 'firstName' : 'M1', 'lastName' : 'D1'}, {'msisdn' : '+445555556', 'policyID' : pid, 'firstName' : 'M2', 'lastName' : 'D2'}]
self.api=pmcApiMethods.apiCheckSetup(host=testConfig.pmcApiServer, port=testConfig.pmcApiPort)
self.api.createSubscribers(subList)
不知道这是否有帮助不知道这是否有帮助,但当我使用python句柄wsdl时,我发现在大多数复杂类型的软件包中明显缺乏支持。最后,我决定使用zsi及其wsdl2py--complexType wsdl_url。这很有效。我的wsdl中有许多复杂类型,其中包含wsdl中定义的数组数组。wsdl2py生成3个lib,用于访问wsdl。下面是一个调用方法createSubscribers的示例,该方法接受值数组
import inspect, sys
from PolicyManagementService_client import *
class apiCheckSetup:
def __init__(self, host="10.10.10.23", port="8080", log=None):
"""Setup to run wsdl operations"""
self.loc=PolicyManagementServiceLocator(host, port)
if log:
logfile=log
else:
logfile=sys.stdout
kw = { 'tracefile' : logfile}
self.port=self.loc.getPolicyManagementPort(**kw)
def createSubscribers(self, subList):
req=createSubscribers()
subscriberList=ns0.subscriberDetailsList_Def("subscriberList")
subscriber=ns0.subscriberDetails_Def("subscriber")
subUsers=subscriberList.pyclass()
for element in subList:
sub=subscriber.pyclass()
sub.set_attribute_msisdn(element['msisdn'])
sub.set_attribute_policyID(element['policyID'])
sub.set_attribute_firstName(element['firstName'])
sub.set_attribute_lastName(element['lastName'])
subUsers._subscriber.append(sub)
req._subscribers=subUsers
self.port.createSubscribers(req)
这可以这样称呼:
subList=[{'msisdn' : '+445555555', 'policyID' : pid, 'firstName' : 'M1', 'lastName' : 'D1'}, {'msisdn' : '+445555556', 'policyID' : pid, 'firstName' : 'M2', 'lastName' : 'D2'}]
self.api=pmcApiMethods.apiCheckSetup(host=testConfig.pmcApiServer, port=testConfig.pmcApiPort)
self.api.createSubscribers(subList)
不知道这是否有帮助您可以使用Jira CLI(使用SUD用Python编写)将文件附加到问题。在LGPL许可下可用 您将使用的命令是“附加” 更新:Python CLI不工作。 在python 2.7下使用此CLI附加文件时出错:
Traceback (most recent call last):
File "./jira", line 1281, in <module>
rc = com.run(command_name, logger, jira_env, args[1:])
File "./jira", line 1080, in run
return self.commands[command].dispatch(logger, jira_env, args)
File "./jira", line 70, in dispatch
results = self.run(logger, jira_env, args)
File "./jira", line 140, in run
logger.error(decode(e))
File "./jira", line 1142, in decode
str = e.faultstring
AttributeError: 'exceptions.NameError' object has no attribute 'faultstring'
您可以使用Jira CLI(使用SUD以Python编写)将文件附加到问题。在LGPL许可下可用 您将使用的命令是“附加” 更新:Python CLI不工作。 在python 2.7下使用此CLI附加文件时出错:
Traceback (most recent call last):
File "./jira", line 1281, in <module>
rc = com.run(command_name, logger, jira_env, args[1:])
File "./jira", line 1080, in run
return self.commands[command].dispatch(logger, jira_env, args)
File "./jira", line 70, in dispatch
results = self.run(logger, jira_env, args)
File "./jira", line 140, in run
logger.error(decode(e))
File "./jira", line 1142, in decode
str = e.faultstring
AttributeError: 'exceptions.NameError' object has no attribute 'faultstring'
如果您不想使用Java CLI,下面是如何在Python中添加和附件
from suds.client import Client
client = Client(url_to_wsdl_file)
auth = client.service.login(username, password)
client.service.addBase64EncodedAttachmentsToIssue(auth, issue_key, [filename.encode("utf-8")], [open(full_path_and_filename, "rb").read().encode('base64')])
如果您不想使用Java CLI,下面是如何在Python中添加和附件
from suds.client import Client
client = Client(url_to_wsdl_file)
auth = client.service.login(username, password)
client.service.addBase64EncodedAttachmentsToIssue(auth, issue_key, [filename.encode("utf-8")], [open(full_path_and_filename, "rb").read().encode('base64')])