2016-06-13 23 views
0

Ich versuche, über Python-Modul auf Siebel WSDL zuzugreifen. Mein Endszenario erstellt eine Serviceanfrage in Siebel über einen externen Link.Zugriff auf Siebel-WSDL über Python-Pakete (SOAPpy, Suds, Anfragen)

ich versucht habe,

Anfragen, Suds und SOAPpy.

Beim Importieren von WSDL-Datei in SOAP-UI nach Änderungen an der URL und das Anfügen von Benutzernamen und Passwort an dieselben und Änderungen im Körper, funktioniert es für mich und geben 200 Server-Antwort.

Beim Versuch, mit postman (Restclient) auf dasselbe zuzugreifen und URL mit Benutzername und Passwort hinzugefügt. Und übergeben Sie die erforderliche XML als Teil des Körpers bekomme ich 500 interne Serverfehler.

Nicht zu verstehen, wo der Unterschied in der Art und Weise kommt, wie die Anfrage durch soapUI und Postman läuft.

Was für einen Unterschied muss ich machen, damit es mit Postboten klappt.

Was ist der richtige Weg, um einen WSDL-Dienst in Python zu konsumieren.

SOAP Input:

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

Ich muss hier wissen, ob Integration ID ist etwas, das ich dynamisch übergeben müssen, wie diese zu erreichen.

Viele Dank für Ihre Zeit

Antwort

0

Wenn Sie einen 500 Fehler bekommen, das bedeutet die Anforderung an den Web-Server stecken, und getroffen hat noch nicht den Siebel-Server dahinter. Wenn der Fehler darauf zurückzuführen ist, dass in der XML-Datei etwas fehlt, erhalten Sie in der Antwort einen Fehlercode "SBL-". Bis Sie das bekommen und 500 Fehler bekommen, hat die Anfrage SOAP den siebel Server noch nicht erreicht.

Ich weiß nicht Python, aber mein Vorschlag wäre, die RAW-Nachricht von Ihrem Python-Skript zu erfassen und diese mit der RAW-Nachricht in SOAP-UI zu vergleichen. Überprüfen Sie besonders die SOAPAction-Zeichenfolge, es sollte einen Schrägstrich (/) und einen Doppelpunkt (:) haben. "Content-Type", "text/xml"

Für weitere Fehlersuche müssen Sie die Webserver-Protokolle überprüfen, um zu sehen, wie die Nachricht dort ankommt.