0

我正在尝试通过 python 模块访问 Siebel WSDL。我的最终场景是通过外部链接在 Siebel 中创建服务请求。

我努力了,

请求、Suds 和soapPY。

在更改 URL 并将用户名和密码附加到相同并更改正文后将 WSDL 文件导入 SOAP-UI 时,它对我有用并给出 200 服务器响应。

当尝试使用 postman(rest 客户端)访问相同内容并提供添加了用户名和密码的 URL 时。并将所需的 XML 作为正文的一部分传递,我收到 500 个内部服务器错误。

不了解请求通过soapUI和邮递员的方式有何不同。

我必须做出什么改变,才能让它与邮递员一起工作。

在 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 是否是我需要动态传递的东西,如何实现它。

非常感谢您的时间

4

1 回答 1

0

如果您收到 500 错误,这意味着该请求被卡在 Web 服务器上,并且尚未访问其后面的 siebel 服务器。如果错误是由于 xml 中缺少某些内容,您将在响应中收到“SBL-”错误代码。直到你得到它,并且得到 500 个错误,请求 SOAP 还没有到达 siebel 服务器。

我不知道 python,但我的建议是捕获来自 python 脚本的 RAW 消息,并将其与 SOAP-UI 中的 RAW 消息进行比较。特别检查 SOAPAction 字符串,它应该有一个正斜杠 (/) 和一个冒号 (:)。“内容类型”、“文本/xml”

为了进一步调试,您必须检查网络服务器日志以查看消息是如何到达那里的。

于 2016-06-14T02:52:48.253 回答