2013-05-08 2 views
1

Je suis tout à fait nouveau pour webservices et du savon, et je suivais un cours d'instruction et est venu avec ce code:Erreur d'analyse XML PHP charge utile SOAP en ligne 3: réservé Nom XML

serveur SOAP:

<?php 
include("lib/nusoap.php"); 
include("getDB.php"); 

function getUsers() 
{ 
    $user_id = $_GET['user_id']; 
    $result = mysql_query("SELECT * FROM -table name- WHERE user_id = '$user_id'"); 
    $try = mysql_fetch_array($result); 
    return join(",", array(
     $result['username'], $result['password'] 
    )); 
} 

$server = new soap_server(); 
$server->register("getUsers"); 
$server->service($HTTP_RAW_POST_DATA); 
?> 

SOAP client:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title></title> 

     <!-- Error Reporting --> 
     <?php 
     error_reporting(E_ALL); 
     ini_set('display_errors', '1'); 
     ?> 
    </head> 
    <body> 
     <?php 
      include("lib/nusoap.php"); 
      $client = new nusoap_client("http://localhost/wp-content/themes/blackbird/phpwizard/HTML5Application/public_html/Webservice.php?user_id=4"); 

      $error = $client->getError(); 

      if ($error) 
      { 
       echo "<h2>Constructor error</h2><pre>" . $error . "</pre>"; 
      } 

      $result = $client->call("getUsers", array("category" => "books")); 

      if ($client->fault) 
      { 
       echo "<h2>Fault</h2><pre>"; 
       print_r($result); 
       echo "</pre>"; 
      } 

      else 
      { 
       $error = $client->getError(); 

       if ($error) 
       { 
        echo "<h2>Error</h2><pre>" . $error . "</pre>"; 
       } 

       else 
       { 
        echo "<h2>Books</h2><pre>"; 
        echo $result; 
        echo "</pre>"; 
       } 
      } 

     ?> 
    </body> 
</html> 

maintenant, lors du chargement du client SOAP Je reçois l'erreur:

XML error parsing SOAP payload on line 3: Reserved XML Name

Je ne sais pas pourquoi cela se produit.

+0

Quel tutoriel avez-vous suivi? Qu'avez-vous fait pour mieux comprendre le message d'erreur? Qu'attendiez-vous différemment du message d'erreur? Qu'est-ce qui différencie votre question de [Erreur XML lors de l'analyse de la charge utile SOAP: Nom XML réservé] (http://stackoverflow.com/q/11107592/367456)? – hakre

Répondre

1

Essayez de supprimer l'espace avant <?xml comme mentionné dans cette question
XML error parsing SOAP payload: Reserved XML Name

Aussi est-il possible de coller la décharge du client NuSOAP, comme dans cette question afin que nous puissions voir ce qui est d'être rendu. Commençons le débogage là et répondons avec ce que vous voyez sur votre exemple.

En outre, voici un tutoriel que j'ai utilisé dans le passé. PHP fonctionne bien avec SOAP, alors essayez-le avant d'ajouter une couche dans une bibliothèque séparée, à moins que vous ayez besoin de quelque chose de fantaisiste. Essayez cet exemple pour voir si cela fonctionne pour vous.
IBM Opensource Php SoapServerClient example.

+0

Tout cela ressemble plus à un commentaire qu'à une réponse. – hakre

+0

"Essayez de supprimer l'espace avant" pal4life

+0

Vous n'avez pas besoin de dupliquer une réponse existante alors si c'est votre réponse. Laissez juste un lien dans un commentaire et voyez si c'est déjà la solution. Si oui, la question est un doublon de toute façon. – hakre

Questions connexes