Portal > Foren > PHP > PHP-Programmierung > Komplexe Parameter bei SOAP-Call
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 20.01.2008, 12:17 Nach oben    #1
Benutzer
 
Benutzerbild von chrigu
 
Registriert seit: 18.09.2006
Beiträge: 50
Standard Komplexe Parameter bei SOAP-Call

Hallo zusammen,
Momentan beisse ich mir an einem Webservice die Zähne aus..
Das Manual verlangt, dass man einen SOAP-Request, in folgender Form abschickt:

Code:
  <?xml version="1.0" encoding="utf-8"?>
  <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-
  instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
    <soap12:Body>
         <GetObjectList xmlns="http://www.omninet.de/OtWebSvc/v1">
              <Get folderPath="ChangeMgmt\RFCs" recursive="true">
                   <Filter>demo</Filter>
                <RequiredField>Title</RequiredField>
                <RequiredField>Description</RequiredField>
                <RequiredField>LastChange</RequiredField>
                <RequiredField>Priority</RequiredField>
           </Get>
      </GetObjectList>
 </soap12:Body>
</soap12:Envelope>
Wie macht man sowas mit der SOAP-Extension in PHP?
Bin für jeglichen Input dankbar!

Gruss,
Chrigu
chrigu ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 20.01.2008, 17:33 Nach oben    #2
Dejan Spasic
 
Benutzerbild von dejan_spasic
 
Registriert seit: 05.01.2006
Ort: Düsseldorf
Beiträge: 169
Standard

Gibt es denn keine WSDL? Das würde die Sache ernorm erleichtern.
__________________
Da wir alle in einem Boot sitzen, ist es gut, dass wir nicht alle auf einer Seite stehen... (mir unbekannt)
dejan_spasic ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 20.01.2008, 17:52 Nach oben    #3
Benutzer
 
Benutzerbild von chrigu
 
Registriert seit: 18.09.2006
Beiträge: 50
Standard

Zitat:
Zitat von dejan_spasic Beitrag anzeigen
Gibt es denn keine WSDL? Das würde die Sache ernorm erleichtern.
Klar, ganz vergessen.
Habe mal nur den relevanten Teil gepostet. Wenn was wichtiges fehlt, poste ich sonst noch das ganze File.

Code:
      <s:element name="GetObjectList">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="Get" type="tns:GetObjectListData" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="GetObjectListData">
        <s:sequence>
          <s:choice minOccurs="1" maxOccurs="1">
            <s:element minOccurs="0" maxOccurs="1" name="ObjectIDs" type="tns:ObjectIDs" />
            <s:element minOccurs="0" maxOccurs="1" name="Filter" type="tns:Filter" />
          </s:choice>
          <s:element minOccurs="0" maxOccurs="unbounded" name="RequiredField" type="tns:RequiredField" />
        </s:sequence>
        <s:attribute name="folderPath" type="s:string" />
        <s:attribute name="recursive" type="s:boolean" use="required" />
      </s:complexType>
      <s:complexType name="ObjectIDs">
        <s:attribute name="objectIDs" use="required">
          <s:simpleType>
            <s:list itemType="s:int" />
          </s:simpleType>
        </s:attribute>
      </s:complexType>
      <s:complexType name="Filter" mixed="true">
        <s:sequence>
          <s:choice minOccurs="0" maxOccurs="unbounded">
            <s:element minOccurs="0" maxOccurs="1" name="CurrencyVal" type="tns:CurrencyVal" />
            <s:element minOccurs="0" maxOccurs="1" name="StringVal" type="tns:StringVal" />
            <s:element minOccurs="0" maxOccurs="1" name="ReferenceVal" type="tns:ReferenceVal" />
            <s:element minOccurs="0" maxOccurs="1" name="ReferenceToUserVal" type="tns:ReferenceToUserVal" />
            <s:element minOccurs="0" maxOccurs="1" name="ByteVal" type="tns:ByteVal" />
            <s:element minOccurs="0" maxOccurs="1" name="BoolVal" type="tns:BoolVal" />
            <s:element minOccurs="0" maxOccurs="1" name="LongIntVal" type="tns:LongIntVal" />
            <s:element minOccurs="0" maxOccurs="1" name="DoubleVal" type="tns:DoubleVal" />
            <s:element minOccurs="0" maxOccurs="1" name="ShortIntVal" type="tns:ShortIntVal" />
            <s:element minOccurs="0" maxOccurs="1" name="SingleVal" type="tns:SingleVal" />
            <s:element minOccurs="0" maxOccurs="1" name="DateTimeVal" type="tns:DateTimeVal" />
            <s:element minOccurs="0" maxOccurs="1" name="NullVal" type="tns:NullVal" />
          </s:choice>
        </s:sequence>
      </s:complexType>
      <s:complexType name="RequiredField">
        <s:simpleContent>
          <s:extension base="s:string" />
        </s:simpleContent>
      </s:complexType>
      <s:element name="GetObjectListResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="GetObjectListResult" type="tns:GetObjectListResult" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="GetObjectListResult">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="Object" type="tns:ObjectData" />
        </s:sequence>
        <s:attribute name="success" type="s:boolean" use="required" />
        <s:attribute name="errorMsg" type="s:string" />
      </s:complexType>
      <s:complexType name="ObjectData">
        <s:sequence>
          <s:choice minOccurs="0" maxOccurs="unbounded">
            <s:element minOccurs="0" maxOccurs="1" name="BoolVal" type="tns:BoolVal" />
            <s:element minOccurs="0" maxOccurs="1" name="LongIntVal" type="tns:LongIntVal" />
            <s:element minOccurs="0" maxOccurs="1" name="SingleVal" type="tns:SingleVal" />
            <s:element minOccurs="0" maxOccurs="1" name="DoubleVal" type="tns:DoubleVal" />
            <s:element minOccurs="0" maxOccurs="1" name="DateTimeVal" type="tns:DateTimeVal" />
            <s:element minOccurs="0" maxOccurs="1" name="StringVal" type="tns:StringVal" />
            <s:element minOccurs="0" maxOccurs="1" name="CurrencyVal" type="tns:CurrencyVal" />
            <s:element minOccurs="0" maxOccurs="1" name="AttachmentsVal" type="tns:AttachmentsVal" />
            <s:element minOccurs="0" maxOccurs="1" name="ReferenceVal" type="tns:ReferenceVal" />
            <s:element minOccurs="0" maxOccurs="1" name="ByteVal" type="tns:ByteVal" />
            <s:element minOccurs="0" maxOccurs="1" name="ReferenceToUserVal" type="tns:ReferenceToUserVal" />
            <s:element minOccurs="0" maxOccurs="1" name="TimeStampedMemoVal" type="tns:TimeStampedMemoVal" />
            <s:element minOccurs="0" maxOccurs="1" name="ReferenceListVal" type="tns:ReferenceListVal" />
            <s:element minOccurs="0" maxOccurs="1" name="NullVal" type="tns:NullVal" />
            <s:element minOccurs="0" maxOccurs="1" name="ShortIntVal" type="tns:ShortIntVal" />
          </s:choice>
        </s:sequence>
        <s:attribute name="id" type="s:int" use="required" />
      </s:complexType>
      <s:complexType name="AttachmentsVal">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="Attachments" type="tns:ArrayOfAttachment" />
        </s:sequence>
        <s:attribute name="name" type="s:string" />
      </s:complexType>
      <s:complexType name="ArrayOfAttachment">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="Attachment" nillable="true" type="tns:Attachment" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="Attachment">
        <s:simpleContent>
          <s:extension base="s:base64Binary">
            <s:attribute name="attachmentId" type="s:int" use="required" />
            <s:attribute name="link" type="s:boolean" use="required" />
            <s:attribute name="name" type="s:string" />
            <s:attribute name="url" type="s:string" />
            <s:attribute name="description" type="s:string" />
            <s:attribute name="creationDate" type="s:DateTime" use="required" />
            <s:attribute name="lastModification" type="s:DateTime" use="required" />
          </s:extension>
        </s:simpleContent>
      </s:complexType>
      <s:complexType name="TimeStampedMemoVal">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="Section" type="tns:TimeStampedMemoSection" />
        </s:sequence>
        <s:attribute name="name" type="s:string" />
      </s:complexType>
      <s:complexType name="TimeStampedMemoSection">
        <s:simpleContent>
          <s:extension base="s:string">
            <s:attribute name="date" type="s:DateTime" use="required" />
            <s:attribute name="user" type="s:string" />
            <s:attribute name="state" type="s:string" />
          </s:extension>
        </s:simpleContent>
      </s:complexType>
    </s:schema>
chrigu ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 20.01.2008, 20:13 Nach oben    #4
Dejan Spasic
 
Benutzerbild von dejan_spasic
 
Registriert seit: 05.01.2006
Ort: Düsseldorf
Beiträge: 169
Standard

Sry da muss ich auch vorerst passen. Was hast du denn schon versucht gehabt?
__________________
Da wir alle in einem Boot sitzen, ist es gut, dass wir nicht alle auf einer Seite stehen... (mir unbekannt)
dejan_spasic ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.01.2008, 14:26 Nach oben    #5
Benutzer
 
Benutzerbild von chrigu
 
Registriert seit: 18.09.2006
Beiträge: 50
Standard

Zitat:
Zitat von dejan_spasic Beitrag anzeigen
Sry da muss ich auch vorerst passen. Was hast du denn schon versucht gehabt?
Alles mögliche
Naja, hab das Problem jetzt anders gelöst. Mache die Request "von Hand", bzw. benutze Zend_Http_Client.
Ist scheinbar nicht möglich mit dem jetzigen Stand der SOAP-Extension in PHP!

Code:
  <?xml version="1.0" encoding="utf-8"?>
  <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-
  instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
    <soap12:Body>
         <GetObjectList xmlns="http://www.omninet.de/OtWebSvc/v1">
              <Get folderPath="ChangeMgmt\RFCs" recursive="true">
                   <Filter>demo</Filter>
                <RequiredField>Title</RequiredField>
                <RequiredField>Description</RequiredField>
                <RequiredField>LastChange</RequiredField>
                <RequiredField>Priority</RequiredField>
           </Get>
      </GetObjectList>
 </soap12:Body>
</soap12:Envelope>
PHP-Code:
$http = new Zend_Http_Client();
$http->setUri('https://....');
$response $http->setRawData($xml'text/xml')->request('POST'); 
Gruss,
Chrigu
chrigu ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[PERL] Parameterhandling bei Perl WarrenFaith Tutorials 0 01.03.2006 12:33


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:39 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45