Ankündigung

Einklappen
Keine Ankündigung bisher.

NUSOAP Request und Problem mit assoziativen Arrays

Einklappen

Neue Werbung 2019

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

  • NUSOAP Request und Problem mit assoziativen Arrays

    Hallo,
    ich beschäftige mich seit kurzem mit nusoap, dabei stehe ich vor folgender Problematik:

    Erwartet wird vom Server folgender Request
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns2:sRequest xmlns:ns2="http://www.irgendwas.com/types">
    <details>
    <transactionList>
    <transaction>123</transactionID>
    <transaction>345</transactionID>
    </transactionList>
    </details>
    </ns2:sRequest>
    Da mittels nusoap das Array assoziativ an nusoap übergeben wird ist es mir nicht gelungen
    in der transactionList zwei separate transaction Inhalte zu generieren. Mein assoziatives
    Array überschreibt wie in PHP zu erwarten ist das nächste transaction Element.

    Mein generierter Request sieht wie folgt aus
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns2:sRequest xmlns:ns2="http://www.irgendwas.com/types">
    <details>
    <transactionList>
    <transaction>12323</transactionID>
    </transactionList>
    </details>
    </ns2:sRequest>
    Der Client sieht dabei wie folgt aus:
    PHP-Code:
    $transactionArr = array(
    'transaction' => $transaction1,
    'transaction' => $transaction2
    );

    $detailsArr = array(
    'transactionList' => $transactionArr
    );

    $reqParam = array (
    'details' => $detailsArr
    );

    $client = new nusoap_client(SOAP_ENDPOINT);
    $client->soap_defencoding "UTF-8";

    $result $client->call("sRequest"$reqParamSOAP_URISOAP_URIfalse,null"rpc""literal");

    if (
    $fault $client->fault) {
    echo 
    '<h2>Fault</h2><pre>';
    print_r($result);
    } elseif (
    $error $client->getError()) {
    /* Display the error => Array */
    echo '<h2>Error</h2><pre>' $error '</pre>';
    } else {
    /* Display the result => Array */
    echo '<h2>Result</h2><pre>';
    print_r($result);
    echo 
    '</pre>';
    }

    echo 
    '<h2>Request</h2><pre>' htmlspecialchars($client->requestENT_QUOTES) . '</pre>';
    echo 
    '<h2>Response</h2><pre>' htmlspecialchars($client->responseENT_QUOTES) . '</pre>'
    Ich bezweifle das nusoap hier an seine grenzen stößt es müsste sicherlich eine Lösung geben?


    tuxnisi

  • #2
    Kannst Du dem Listen-Element keine unique ID übergeben, die der Server ignoriert? Also das <transaction id="123"> dabei herauskommt?

    Musst Du nusoap nutzen? Ich halte json_encode() und serialize() für weit aus weniger kompliziert und vor allen Dingen auch performanter.
    meine PHP Scripte

    Kommentar


    • #3
      Probier doch mal sowas:

      PHP-Code:
      array ('transactionList' => array(123456)); 
      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

      Kommentar

      Lädt...
      X