[faultcode] => soap:Client

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
eagleman
Δημοσιεύσεις: 30
Εγγραφή: 14 Δεκ 2005 19:32

[faultcode] => soap:Client

Δημοσίευση από eagleman » 29 Αύγ 2007 23:19

Καλησπέρα σας,

προσπαθώ να δημιουργήσω ένα web service χρησιμοποιώντας nusoap και wsdl. τον server μου τον έχουν δωσει έτοιμο και εγώ έχω να κάνω το κομμάτι του client. έχω χρησιμοποιήσει Open source κώδικα που έχω βρεί απο tutorials στο internet όπως εδώ www.scottnichol.com/nusoapprogwsdl.htm και εδώ http://developer.apple.com/internet/web ... apphp.html . Όταν τρέχω τον client από το pc μου μου επιστρέφει το ακόλουθο error:

Κώδικας: Επιλογή όλων

Fault
Array
(
    [faultcode] => soap:Client
    [faultstring] => Server did not recognize the value of HTTP Header SOAPAction: .
    [detail] => 
)

ο κώδικας που χρησιμοποιώ στην εφαρμογή μου είναι:

Κώδικας: Επιλογή όλων

<?php
// Pull in the NuSOAP code
require_once&#40;'nusoap.php'&#41;;
// Create the client instance
$client = new soapclient&#40;'http&#58;//xxxx.xxxx.gr/services/eLearning.asmx?wsdl,true'&#41;;
// Check for an error
$err = $client->getError&#40;&#41;;
if &#40;$err&#41; &#123;
    // Display the error
    echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
    // At this point, you know the call that follows will fail
&#125;
// Call the SOAP method
$result = $client->call&#40;'GradeActivity', array&#40;'xmlContent' => 'Hello'&#41;&#41;;
// Check for a fault
if &#40;$client->fault&#41; &#123;
    echo '<h2>Fault</h2><pre>';
    print_r&#40;$result&#41;;
    echo '</pre>';
&#125; else &#123;
    // Check for errors
    $err = $client->getError&#40;&#41;;
    if &#40;$err&#41; &#123;
        // Display the error
        echo '<h2>Error</h2><pre>' . $err . '</pre>';
    &#125; else &#123;
        // Display the result
        echo '<h2>Result</h2><pre>';
        print_r&#40;$result&#41;;
    echo '</pre>';
    &#125;
&#125;
// Display the request and response
echo '<h2>Request</h2>';
echo '<pre>' . htmlspecialchars&#40;$client->request, ENT_QUOTES&#41; . '</pre>';
echo '<h2>Response</h2>';
echo '<pre>' . htmlspecialchars&#40;$client->response, ENT_QUOTES&#41; . '</pre>';
// Display the debug messages
echo '<h2>Debug</h2>';
echo '<pre>' . htmlspecialchars&#40;$client->debug_str, ENT_QUOTES&#41; . '</pre>';
?>
Αρχικά στέλνω ένα Hello για να τεστάρω την επικοινωνία και στην συνέχεια θα στέλνω μία μεταβλητή που θα περιέχει ένα xml κώδικα μέσα του.

1) Γνωρίζεται γιατί μου εμφανίζεται αυτό το error? Τι μπορεί να φταίει?
2) Αν δεν γνωρίζεται, έχετε μήπως κάποια ιδέα τι να δοκιμάσω ώστε να κάνω την εφαρμογή μου να παίξει?

ευχαριστώ,

Γιάννης

eagleman
Δημοσιεύσεις: 30
Εγγραφή: 14 Δεκ 2005 19:32

[faultcode] => soap:Client

Δημοσίευση από eagleman » 01 Σεπ 2007 12:37

Βρήκα την λύση στο πρόβλημα που σας ανέφερα και σας παραθέτω το κομμάτι κώδικα που έκανε την εφαρογή μου να δουλέψει:

Κώδικας: Επιλογή όλων

<?php 
// include the SOAP classes 
require_once&#40;'nusoap.php'&#41;; 

// define path to server application 
$serverpath ='http&#58;//xxx.xxxxx.gr/service.php?wsdl'; 

// define parameter array 
$param = array&#40;'xmlContent' =>  'Hello'&#41;; //Prosoxi sto orisma, 'xmlContent'

// create client object 
$client = new soapclient&#40;$serverpath, true&#41;; 

$err = $client->getError&#40;&#41;; 
if &#40;$err&#41; echo '<h2>Constructor error</h2><pre>' . $err . '</pre>'; 

$result = $client->call&#40;'GradeActivity', array&#40;$param&#41;&#41;; 
// prosoxi sto Onoma tis synartisis pou stelnetε, 'GradeActivity'

// Check for a fault
if &#40;$client->fault&#41; &#123;
    echo '<h2>Fault</h2><pre>';
    print_r&#40;$result&#41;;
    echo '</pre>';
&#125; else &#123;
    // Check for errors
    $err = $client->getError&#40;&#41;;
    if &#40;$err&#41; &#123;
        // Display the error
        echo '<h2>Error</h2><pre>' . $err . '</pre>';
    &#125; else &#123;
        // Display the result
        echo '<h2>Result</h2><pre>';
        print_r&#40;$result&#41;;
    echo '</pre>';
    &#125;
&#125;

// Display the request and response
echo '<h2>Request</h2>';
echo '<pre>' . htmlspecialchars&#40;$client->request, ENT_QUOTES&#41; . '</pre>';
echo '<h2>Response</h2>';
echo '<pre>' . htmlspecialchars&#40;$client->response, ENT_QUOTES&#41; . '</pre>';

// Display the debug messages
echo '<h2>Debug</h2>';
echo '<pre>' . htmlspecialchars&#40;$client->debug_str, ENT_QUOTES&#41; . '</pre>';
?>
Γιάννης

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης