- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要使用 python SOAPpy 模块构建此 SOAP 查询:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<LicenseHeader xmlns="http://schemas.acme.eu/">
<LicenseKey>88888-88888-8888-8888-888888888888</LicenseKey>
</LicenseHeader>
</soap:Header>
<soap:Body>
<GetProductClassification xmlns="http://schemas.acme.eu/">
<GetProductClassificationRequest />
</GetProductClassification>
</soap:Body>
</soap:Envelope>
所以我使用这段代码:
from SOAPpy import WSDL
wsdlFile = 'https://example.comt/1.0/service.asmx?wsdl'
server = WSDL.Proxy(wsdlFile)
result = server.GetProductClassification();
生成的请求是:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
>
<SOAP-ENV:Body>
<GetProductClassification SOAP-ENC:root="1">
</GetProductClassification>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
当我发送请求时,我得到对象引用未设置为对象的实例。
我认为这可能是因为我没有带有许可证的header
部分输入我的请求。
如何修改代码以添加带有 LicenseHeader
参数的 header
部分?
最佳答案
我不确定如何在 SOAPpy 中执行此操作,但我确实知道如何在 SOAP 水中执行此操作。 SUDS 与 SOAPpy 做同样的事情,但它更新并且仍然受支持。我认为 SOAPpy 不再受支持。下面显示了连接到 WSDL 并发送 SOAP 请求的代码:
class MySudsClass():
def sudsFunction(self):
url = "http://10.10.10.10/mywsdl.wsdl"
# connects to WSDL file and stores location in variable 'client'
client = Client(url)
#I have no address set in the wsdl to the camera I connect to so I set it's location here
client.options.location = 'http:/10.10.10.11'
# Create 'xml_value' object to pass as an argument using the 'factory' namespace
xml_value = client.factory.create('some_value_in_your_xml_body')
#This send the SOAP request.
client.service.WSDLFunction(xml_value)
在发送 SOAP 请求之前将其放入脚本中,它将添加您想要的任何 header 。
# Namespaces to be added to XML sent
wsa_ns = ('wsa', 'http://schemas.xmlsoap.org/ws/2004/08/addressing')
wsdp_ns = ('http://schemas.xmlsoap.orf/ws/2006/02/devprof')
# Field information for extra XML headers
message = 'mymessage'
address_txt = 'myheader_information'
# Soapheaders to be added to the XML code sent
# addPrefix allow's you to addc a extra namespace. If not needed remove it.
message_header = Element('MessageID', ns=wsa_ns).setText(message)
address_header = Element('Address', ns=wsa_ns).setText(address_txt).addPrefix(p='wsdp', u=wsdp_ns)
header_list = [message_header, address_header]
# Soapheaders being added to suds command
client.set_options(soapheaders=header_list)
这将允许您添加 wsa 编码,使 XML 能够理解:
# Attribute to be added to the headers to make sure camera verifies information as correct
mustAttribute = Attribute('SOAP-ENV:mustUnderstand', 'true')
for x in header_list:
x.append(mustAttribute)
如果你使用这样的东西,你将能够添加任何 header 、命名空间等。我已经使用了它并且它工作得很好。
要在 SUDS 中添加许可证 header ,请添加:
license_key = Element('LicenseKey', ns=some_namespace).setText('88888-88888-8888-8888-888888888888')
license_header = Element('LicenseHeader', ns=some_namespace).insert(license_key)
license_attribute = Attribute(xmlns, "http://schemas.acme.eu/")
license_header.append(license_attribute)
关于python - 使用 SOAPpy 将 header 部分添加到 SOAP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2964867/
嗨,我试图在我的 mac 上为 python 安装 SOAPpy 模块...... 我安装了 xml 和 fpconst 并尝试安装这个 SOAPpy 模块,但我得到了错误......如下所示: ve
我正在使用 SOAPpy 访问 SOAP Web 服务。对 findPathwaysByText 函数的调用工作正常: server.findPathwaysByText (query= 'WP619
我正在尝试从 HP Server Automation 访问我的 WSDL 中定义的函数,我能够获取服务器等,但无法通过 SOAPpy 提取任何需要服务器引用的内容。 import SOAPpy fr
如何在 SOAPpy 客户端中启用某种详细输出和/或日志记录?这样我就可以诊断出一些相当奇怪的问题,这些问题会导致 Web 服务调用在没有任何异常或崩溃的情况下阻止执行。 最佳答案 SOAPpy 已死
我调用a WSDL web service从 Python 使用 SOAPpy .我需要调用方法 Auth_login .这有 2 个参数 - 第一个是 API key 的字符串;第二个,custom
我目前正在为使用 Axis2 WS-Security 的应用程序开发 python 网络服务 简化后的相关代码是 from SOAPpy import SOAPProxy from SOAPpy im
我需要知道 SOAPpy 做了什么请求。有谁知道该怎么做吗? 最佳答案 SOAPpy 有一个配置对象,可用于设置不同的属性。要查看请求,您可以使用 dumpSOAPOut 或 dumpSOAPIn 甚
我对 python 很陌生,一直在研究如何安装模块。我一直在尝试安装 SOAPpy 模块,但只成功安装了所需的模块 fpconst、wstools 和 setuptools(未按要求提及,但最终仍然是
回溯(最近一次调用最后一次): File "naturalClient.py", line 9, in from SOAPpy import SOAPProxy ImportError: No mo
我在正确连接 Axis2 上运行的 SOAP API 时遇到问题: 我应该用两个参数(loginName 和 password)调用登录方法,它会返回一个我将用于后续交互的身份验证 token 。 #
我正在尝试使用 Python 解释器中的以下代码调用一个简单的 SOAP 网络服务: from SOAPpy import WSDL wsdl = "http://www.webservicex.ne
我尝试通过在 Python 2.7.5 上使用 SOAPpy 来调用使用 SOAP 请求的方法该方法称为 GetCursOnDate 并返回汇率。它需要一个日期时间参数。 我正在使用以下代码: fro
我正在尝试使用 SOAPpy(Python SOAP 库)与我们的 JIRA 服务器建立 WSDL SOAP 连接。 一切似乎都很好,除非我尝试查找特定问题。通过 Web 浏览器查找错误 ID 实际上
我正在尝试使用 SOAPpy 调用网络服务: from SOAPpy import SOAPProxy url = 'http://www.webservicex.net/WeatherForecas
我正在尝试通过在 Python 2.7 上使用 SOAPpy 来调用使用 SOAP 请求的方法。该方法称为 GetCursOnDate 并返回汇率。它需要一个日期参数。 我正在使用以下代码: from
如何从 SOAPpy 响应中读取 s SOAP header ? 最佳答案 如果不修改 SOAPy,则不能。 当您调用 SOAP 方法时,SOAPy 会运行它自己的 request 函数,该函数会返回
首先,我承认我是网络服务的新手,尽管我熟悉 HTML 和基本的网络内容。我使用 Python 创建了一个快捷的 Web 服务,它调用 MySQL 数据库中的一个存储过程,它只返回一个 BIGINT 值
我需要使用 python SOAPpy 模块构建此 SOAP 查询: 88888-88888-8888-8888-888888888888
我对 GAE python 上的 WSDL (SOAP) Web 服务非常陌生,我读了一些服务,例如 SOAPpy , SUDS 实际上,我无法弄清楚哪种服务最适合且最容易使用。 伙计们,能否请您分享
我正在形成一个 SOAPpy 请求,但我不知道如何在标记中设置属性。这是我的代码: url = wsdlfile = 'https://stats2.overture.com/ExternalSOAP
我是一名优秀的程序员,十分优秀!