我正试图通过python模块访问Siebel WSDL。我的最终场景是通过外部链接在Siebel中创建服务请求。
我试过了,
请求、Suds和soapPY。
当在对URL进行更改并将用户名和密码附加到SOAP-UI并在正文中进行更改后,将WSDL文件导入SOAP-UI时,它对我有效,并给出200服务器响应。
当尝试使用poster(rest客户端)访问相同的内容并提供添加了用户名和密码的URL时。通过将所需的XML作为正文的一部分,我得到了500个内部服务器错误。
不了解请求通过soapUI和poster的方式的差异。
我必须做出什么改变,才能和邮递员一起工作。
在python中使用WSDL服务的正确方式是什么。
SOAP输入:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aud="http://siebel.com/Service/ServiceReqs" xmlns:aud1="http://www.siebel.com/xml/%20Service%20Request%20IO">
<soapenv:Header/>
<soapenv:Body>
<aud:SRQueryByExample_Input>
<aud1:ListOfServiceRequestIo>
<aud1:ServiceRequestOpen Operation="?">
<aud1:IntegrationId>0000123</aud1:IntegrationId>
</aud1:ServiceRequestOpen>
</aud1:ListOfAudetemiServiceRequestIo>
</aud:SRQueryByExample_Input>
</soapenv:Body>
</soapenv:Envelope>
我需要在这里知道集成ID是否是我需要动态传递的东西,如何实现它。
非常感谢您抽出时间
如果您得到一个500错误,这意味着请求被困在web服务器上,并且还没有到达它后面的siebel服务器。如果错误是由于xml中的某些内容丢失引起的,您将在响应中得到一个"SBL-"错误代码。在得到500个错误之前,请求SOAP还没有到达siebel服务器。
我不知道python,但我的建议是捕获来自python脚本的RAW消息,并将其与SOAP-UI中的RAW信息进行比较。特别检查SOAPAction字符串,它应该有一个正斜杠(/)和一个冒号(:)。"内容类型"、"text/xml">
为了进行进一步的调试,您必须检查Web服务器日志,看看消息是如何到达那里的。