Mit PHP einem SOAP Request sollen Elemente und Attribute übergeben werden

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

  • Mit PHP einem SOAP Request sollen Elemente und Attribute übergeben werden

    Hallo zusammen,
    Sorry dass ich euch hier belästige, aber ich suche schon alle Foren ab und bekomme trotzdem nur "Sytem Error" Meldungen ...

    Ich möchte einen PEAR SOAP Request absetzten. Im Request wird zum XML Element auch ein XML Attribut erwartet. Ich bekomme es einfach nicht hin dass dieses Attribut mitgeschickt wird.

    Der Request soll so aussehen:

    PHP-Code:
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://meinservice/personenService/v1" xmlns:soap="soap">
       <
    soapenv:Header>
       </
    soapenv:Header>
       <
    soapenv:Body>
          <
    v1:getPerson schemaVersion="2.0">
             <
    v1:persnummer>8888</v1:persnummer>
          </
    v1:getPerson>
       </
    soapenv:Body>
    </
    soapenv:Envelope

    Das Element getPerson erwartet also auch noch das Attribut schemaVersion.
    Das Element getPerson ist auch die Bezeichnung der Webservice Operation.

    Habe es mal so versucht, leider wird das Attribut nicht gesetzt:



    PHP-Code:
    require_once 'SOAP/Client.php';
    $url 'http://meinservice/personenService/v1?wsdl';
    $WSDL = new SOAP_WSDL($url);
    $client $WSDL->getProxy();
    $params = array("getPerson" => array("_" => array("persnummer" => 8888), "schemaVersion" => "2.0"));
    $result $client->getPerson($params); 

    Kann mir da vielleicht jemand helfen?
    Gibt es irgendwo eine einigermassen verständliche Anleitung (für einen nicht-PHP-Profi)?

    Vielen Dank

  • #2
    Gibt es irgendwo eine einigermassen verständliche Anleitung (für einen nicht-PHP-Profi)?
    Ich habe da mal was in einem anderen Form geschrieben.....

    Entwicklung eines SOAP Clients
    Evtl. kannste ja damit was anfangen...

    Auf jeden Fall solltest du versuchen dich nicht mit dem XML rum schlagen zu müssen.
    Wir werden alle sterben

    Kommentar


    • #3
      Hallo,

      meines Wissens kannst du mit den gängigen SOAP libraries keine eigenen Attribute setzen. Die erzeugen den XML-Code und schicken ihn weg, ohne dass du ihn zu Gesicht bekommst.

      Wenn der Webservice spezielle Attribute erwartet, widerspricht das eigentlich der bereitgestellten WSDL, denn die kann laut WSDL-Spezifikation keine Attribute für Operationen festlegen. Clients müssen sich aber auf diese WSDL verlassen können, um automatisch SOAP-Nachrichten zu generieren.

      Dir bleibt also nur übrig, den Service-Anbieter davon zu überzeugen, dass die Idee mit den Attributen bescheuert ist, oder du musst deine eigene SOAP-Implementation bauen bzw. die generierten Nachrichten mit einer Art Proxy abfangen und umbauen.

      Gruß,

      Amica
      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
      Super, danke!
      [/COLOR]

      Kommentar


      • #4
        ganzer SOAP Request als string übermitteln?

        Vielen Dank für eure Antworten.
        Das Attribut entspricht wohl der Spezifikation (obwohl's ja wirklich umständlich ist).
        Gibt es in PHP die Möglichkeit den ganzen SOAP Request als String einfach abschicken zu können?
        Also nicht einzeln die Elemente als Array irgendeiner PHP Funktion zuweisen und so.

        Kommentar

        Lädt...
        X