SOAPClient wie gehts?

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

  • SOAPClient wie gehts?

    Guten Morgen,

    ich versuche seit Freitag einen simplen SOAP Call durch zu führen,

    aber ich bekomme immer folgenden Fehler:

    Fatal error: Uncaught SoapFault exception: [HTTP] Could not connect to host in /home/adriang/public_html/env/soap_wsdl.php:31
    Stack trace:
    #0 [internal function]: SoapClient->__doRequest('<?xml version="...', 'https://192.168...', 'http://www.nsn....', 1)
    #1 /home/adriang/public_html/env/soap_wsdl.php(31): SoapClient->__soapCall('get_subscriber_...', Array, Array)
    #2 {main}
    thrown in /home/.... on line 31

    Ich habe jetzt diverse varianten versucht, aber ich komme nicht mal denn connect hin.

    Kollege von mir nutz Phyton;o( Er kommt hin und kann auch abfragen! ALs den Server gibts schonmal.

    Liegts viell am SSL /https)? Wie komme ich an dem Zertifikat vorrbei?
    Habe die Zugangsdaten natürlich etwas abgeöändert;o)

    Was mach ich falsch? Hier mein aktueller Versuch:



    PHP-Code:
    $client = new SoapClient(null, array(
    'location' => "https://188.168.103.289:443/msn-traffic-ws-api/services/TNWS?wsdl",
     
    'uri' => "http://www.msn.com/trafficoldswsapi/"));

    $res2 $client->__soapCall("get_subscriber_MOC"
                                        array(
    'name' => 'A''value' => '3101520008'), 
                                        array(
    'soapaction' => 'http://www.msn.com/trafficoldswsapi/callQuery',
     
    'uri' => 'http://www.msn.com/trafficolfswsapi'));

            if (
    $res2<0) {
                
    $result =  "ERROR: ".errmsg($res2);
            } else {
                
    $result "OK :".$res2;
            }

            
    print_r($result); 
    Danke!
    Zuletzt geändert von petro_0; 02.03.2009, 09:51.
    gruss pedro

  • #2
    Re: SOAPClient wie gehts?

    Original geschrieben von petro_0
    Kollege von mir nutz Phyton;o( Er kommt hin und kann auch abfragen! ALs den Server gibts schonmal.
    Achja? Also ich kann versuchen https://188.168.103.289:443/msn-traffic-ws-api/services/TNWS?wsdl auf welchem Weg ich auch will zu erreichen, ohne SSL, mit anderem Port, nur Standard-Ping, der Antwortet kein Stück... scheint mir garnicht so als würde es den geben.
    Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

    Kommentar


    • #3
      ja ich hab ja auch extra geschrieben, dass ich die server daten verfälscht habe!

      Es geht mir um den code, ob denn dieser richtig oder falsch ist.
      gruss pedro

      Kommentar


      • #4
        Hast du denn irgendwas für SSL-Zugang im PHP installiert, zum Beispiel OpenSSL? Kommst du mit file_get_contents an die Seite?

        Kommentar


        • #5
          Original geschrieben von petro_0
          ja ich hab ja auch extra geschrieben, dass ich die server daten verfälscht habe!
          Du hast was von Zugangsdaten geschrieben. Sorry aber mir war neu dass ne URL plötzlich Zugangsdaten sind... zumindest eine in dem Format wie du sie da hast.
          Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

          Kommentar


          • #6
            per wget komm ich auf die seite.
            gruss pedro

            Kommentar


            • #7
              per wget komm ich auf die seite.
              Ja, und mit PHP?

              Kommentar


              • #8
                Update

                ja per php eben nich;o)

                aber ich bin schon weiter1
                Nun hab ich folgendes versucht;o)

                PHP-Code:
                try { 
                    
                $client = new SoapClient(NULL,
                            array(
                            
                "location" => "https://188.168.303.229:443/msn-traffic-ws-api/services/TNSWS/"
                            
                "uri" => "https://188.168.303.229:443/msn-traffic-ws-api/services/TNWS/"

                echo 
                "getFunctions:\n" print_r($client->__getFunctions()) . "\n";
                echo 
                "getTypes:\n" print_r($client->__getTypes()) . "\n";
                echo 
                "\n\n++++++++++++++++++++\n\n";
                    
                    
                $res $client->__call(
                            
                /* SOAP Method Name */
                            
                "callQuery",
                            
                /* Parameters */
                            
                array(
                                
                "queryName" => 
                                
                "get_subscriber_MOC"
                                        
                /* Parameter Value */
                                        
                "name"=>
                                        
                /* Parameter Name */
                                         
                "A M"
                                        
                /* Parameter Value */
                                        
                "value" =>
                                        
                /* Parameter Name */
                                        
                "491132"),
                            
                /* Options */
                            
                array(
                                
                /* SOAP Method Namespace */
                                
                "uri" => "https://188.168.133.229:443/msn-traffic-ws-api/services/TNWS/",
                                
                /* SOAPAction HTTP Header for SOAP Method */
                                
                "soapaction" => "https://188.133.103.229:443/msn-traffic-ws-api/services/TNWS/callQuery"
                            
                ));
                        
                    if (
                is_soap_fault($res)) {
                        
                trigger_error("SOAP-Fehler: (Fehlernummer: {$res->faultcode}, "
                            
                ."Fehlermeldung: {$res->faultstring})"E_USER_ERROR);
                    }
                echo 
                "ANFRAGE:\n" $client->__getLastRequest() . "\n";
                echo 
                "ANFRAGEHEADER:\n" $client->__getLastRequestHeaders() . "\n";
                echo 
                "RESPONSE:\n" $client->__getLastResponse() . "\n";
                echo 
                "LastRESPONSEHEADER:\n" $client->__getLastResponseHeaders  () . "\n";
                    
                print_r($res);
                    
                } catch (
                SoapFault $exception) {
                    echo 
                $exception;

                Nun bekomme ich...

                SoapFault exception: [soapenv:Server] org.apache.axis2.databinding.ADBException: Unexpected subelement param0 in /home/adriang/public_html/env/soap_wsdl.php:83
                Stack trace:
                #0 /home/adriang/public_html/env/soap_wsdl.php(83): SoapClient->__call('callQuery', Array, Array)
                #1 {main}

                Kann mir einer sagen, wo ich da "param0" falsch habe?
                gruss pedro

                Kommentar


                • #9
                  Re: Update

                  Original geschrieben von petro_0
                  ja per php eben nich;o)
                  Ich glaub du hast die Frage nich richtig verstanden. Hast du bei PHP URL wrapper aktiviert? Wenn ja, kannst du mit fsockopen() oder file_get_contents() auf die Seite zugreifen? Falls nein wird das nämlich kein SOAP-Problem sein. Das wollte PHP-Desaster imho wissen.
                  Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

                  Kommentar


                  • #10
                    Jetzt scheint es ja zu klappen, die Fehlermeldung stammt vom SoapServer. Da wird wohl eine falsche Anfrage hingeschickt. Da wirst du wohl debuggen müssen. Mit SoapClient::__getLastRequest bzw. SoapClient::__getLastResponse solltest du an Anfrage und Antwort kommen.

                    Kommentar


                    • #11
                      Kommt nur die exception zurück...


                      PHP-Code:
                      echo "ANFRAGE:\n" $client->__getLastRequest() . "\n"
                      echo 
                      "ANFRAGEHEADER:\n" $client->__getLastRequestHeaders() . "\n";
                      echo 
                      "RESPONSE:\n" $client->__getLastResponse() . "\n"
                      echo 
                      "LastRESPONSEHEADER:\n" $client->__getLastResponseHeaders  () . "\n"

                      getFunctions:
                      1
                      getTypes:
                      1
                      Fatal error: Uncaught SoapFault exception: [soapenv:Server] org.apache.axis2.databinding.ADBException: Unexpected subelement param0 in /home//env/soap_wsdl.php:99
                      Stack trace:
                      #0 [internal function]: SoapClient->__call('callQuery', Array)
                      #1 /home//env/soap_wsdl.php(99): SoapClient->callQuery(Array)
                      #2 {main}
                      thrown in ...

                      schade ;o(
                      gruss pedro

                      Kommentar


                      • #12
                        Kommt nur die exception zurück...
                        Ja, weil du die nicht fängst:
                        Uncaught SoapFault exception
                        . Guck dir doch mal das Exceptionhandling an, dann klappts auch mit dem Debugging.

                        Kommentar


                        • #13
                          so nun habe ich die exception gefangen.

                          PHP-Code:
                          } catch (SoapFault $exception)
                           {     echo 
                          'Caught exception: '$exception"\n";
                           } 
                          caught exception: SoapFault exception: [soapenv:Server] org.apache.axis2.databinding.ADBException: Unexpected subelement param0 in
                          /home//public_html/env/soap_wsdl.php:102
                          Stack trace:
                          #0 [internal function]: SoapClient->__call('callQuery', Array)
                          #1 /home//public_html/env/soap_wsdl.php(102): SoapClient->callQuery(Array)
                          #2 {main}


                          Schlauer bin ich jetzt nicht;o(
                          gruss pedro

                          Kommentar


                          • #14
                            Ja und das?
                            PHP-Code:
                            echo "ANFRAGE:\n" $client->__getLastRequest() . "\n"
                            echo 
                            "ANFRAGEHEADER:\n" $client->__getLastRequestHeaders() . "\n";
                            echo 
                            "RESPONSE:\n" $client->__getLastResponse() . "\n"
                            echo 
                            "LastRESPONSEHEADER:\n" $client->__getLastResponseHeaders  () . "\n"
                            Denkst du eigentlich mit?

                            Kommentar


                            • #15
                              ja wie und das?
                              das kommt im try unter dem $client->__soapCall.

                              Da kommt aber nix zurück...
                              Warum??


                              Das Script läuft gleich auf die Exception...

                              Hast du eigentlich schonmal die SOAP Funktionen verwendet?
                              Zuletzt geändert von petro_0; 04.03.2009, 19:42.
                              gruss pedro

                              Kommentar

                              Lädt...
                              X