2016-06-13 1 views
0

J'essaie d'accéder à Siebel WSDL via le module python. Mon scénario final crée une demande de service dans Siebel via un lien externe.Accéder à WSDL Siebel via des packages Python (SOAPpy, mousse, requêtes)

J'ai essayé,

demandes, et SOAPpy. Suds Lors de l'importation de fichier WSDL dans SOAP-UI après avoir modifié l'URL et ajouté le nom d'utilisateur et le mot de passe à celui-ci et modifié le corps, cela fonctionne pour moi et donne 200 réponses du serveur.

Lorsque vous essayez d'accéder à la même chose avec le facteur (client de repos) et en donnant l'URL avec le nom d'utilisateur et mot de passe ajouté. Et en passant le XML requis dans le corps, je reçois 500 erreur interne du serveur.

Ne pas comprendre où la différence vient dans la façon dont la requête passe par soapUI et posman.

Quelle différence je dois faire, pour le faire fonctionner avec un facteur.

Quelle est la bonne façon de consommer un service WSDL en python.

SOAP Entrée:

<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> 

Je dois savoir ici si ID d'intégration est quelque chose que je dois passer dynamiquement la façon d'atteindre même.

Un grand merci pour votre temps

Répondre

0

Si vous obtenez une erreur 500, cela signifie que la demande est bloquée au niveau du serveur Web, et n'a pas encore touché le serveur siebel derrière. Si l'erreur est due à quelque chose manquant dans le fichier XML, vous obtiendrez un code d'erreur "SBL-" dans la réponse. Jusqu'à ce que vous obteniez cela, et obtenez 500 erreurs, la demande SOAP n'a pas encore frappé le serveur siebel. Je ne connais pas python, mais ma suggestion serait de capturer le message RAW allant de votre script python et de le comparer au message RAW dans SOAP-UI. Vérifiez particulièrement la chaîne SOAPAction, elle doit avoir une barre oblique (/) et deux points (:). "Content-Type", "text/xml"

Pour un débogage ultérieur, vous devrez vérifier les journaux du serveur Web pour voir comment le message arrive là.