SOAP Client Abfrage WSDL - Parameterübergabe

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • SOAP Client Abfrage WSDL - Parameterübergabe

    Guten Morgen,

    ich grübele schon eine Weile ohne richtige Ahnung über SOAP und wie ich mein Ticketsystem mit einem anderen kopple. Per Tutorial habe ich schon einiges herausbekommen und auch Funktionen ausgeben lassen aus dem WSDL File.

    Ich habe mir außerdem dazu das WSDL File angesehen und finde dort

    Code:
    <wsdl:operation name="GetTicketDetails">   
      <wsdl:documentation>operation "GetTicketDetails"</wsdl:documentation>    
      <wsdl:input message="tns:TicketService_GetTicketDetails_InputMessage" />    
      <wsdl:output message="tns:TicketService_GetTicketDetails_OutputMessage" />    
    </wsdl:operation>  <wsdl:operation name="GetTicketDetails">   
    <wsdl:documentation>operation "GetTicketDetails"
    </wsdl:documentation>    
    <soap:operation soapAction="GetTicketDetails" style="document" />  - 
      <wsdl:input>   <soap:body use="literal" />    </wsdl:input> - 
      <wsdl:output>   <soap:body use="literal" />    </wsdl:output>   
    </wsdl:operation>
    Das scheint die korrekte gesuchte Funktion zu sein, um zumindest überhaupt mal eine generelle Information aus der API zu ziehen: "Übergebe eine Ticketnummer und erhalte die Details." Klingt zumindest danach - sagt mir als SOAP-Laie aber noch nicht soviel, aber es gibt einen Verweis auf eine Schema-Datei:

    Code:
    <xs:element name="GetTicketDetailsRS"> - 
      <xs:complexType> - 
        <xs:sequence>   
          <xs:element maxOccurs="unbounded" ref="Ticket" />    
        </xs:sequence>   
      </xs:complexType>   
      </xs:element>  
        <xs:element name="GetTicketDetailsRQ"> - 
          <xs:complexType> -  
            <xs:sequence> - 
              <xs:element name="TicketIDList"> - 
            <xs:complexType> - 
          <xs:sequence>   
          <xs:element maxOccurs="unbounded" name="TicketID" type="xs:string" />    
          </xs:sequence>    
        </xs:complexType>   
       </xs:element>   
    </xs:sequence>   
    </xs:complexType>   
    </xs:element>
    "RQ" scheint für Request zu stehen, "RS" dann wohl für Response. Nun dachte ich, ich hätte es gefunden und formuliere den Request so um:

    PHP-Code:
    [COLOR=#000000] [COLOR=#0000BB]$result [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]$client[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]GetTicketDetails [/COLOR][COLOR=#007700](array([/COLOR][COLOR=#DD0000]'TicketIDList ' [/COLOR][COLOR=#007700]=> array([/COLOR][COLOR=#DD0000]'TicketID' [/COLOR][COLOR=#007700]=> [/COLOR][COLOR=#DD0000]'1-518545646'[/COLOR][COLOR=#007700])));
    [/COLOR] [/COLOR]

    Das System antwortet mit:

    Uncaught SoapFault exception: [Client] SOAP-ERROR: Encoding: object has no 'TicketIDList' property

    Das wunderte mich, hatte angenommen, TicketIDList wäre das Feld, in dem ich die einzelnen Ticket-IDs ablege. Auch wenn ich TicketIDList weglasse und nur die TicketID übergebe, also

    PHP-Code:
    [COLOR=#000000] [COLOR=#0000BB]$result [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]$client[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]GetTicketDetails [/COLOR][COLOR=#007700](array([/COLOR][COLOR=#DD0000]'TicketID' [/COLOR][COLOR=#007700]=> [/COLOR][COLOR=#DD0000]'1-518545646'[/COLOR][COLOR=#007700]));
    [/COLOR] [/COLOR]

    erhalte ich die gleiche Fehlermeldung. Mir fehlt da grad die zündende Idee. Vielleicht kann jemand einen Hinweis geben? Vielen Dank von

    Kami
    Zuletzt geändert von Kamikurt; 14.05.2014, 07:48.

  • #2
    Schau mal hier: Soap Client - PHP Forum: phpforum.de
    Dort wird gezeigt, wie man die richtigen Typen und Funktionen herausfindet und auch bedient.

    Nunja...
    Viel Erfolg!
    Wir werden alle sterben

    Kommentar

    Lädt...
    X